From e43dbc8fe10290e4337a8732f7ef897a83483b36 Mon Sep 17 00:00:00 2001 From: zmw12306 Date: Sat, 5 Apr 2025 15:21:27 -0400 Subject: [PATCH] babeld: Add a check to prevent all-ones case A router-id MUST NOT consist of either all binary zeroes (0000000000000000 hexadecimal) or all binary ones (FFFFFFFFFFFFFFFF hexadecimal). Signed-off-by: zmw12306 --- babeld/babeld.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/babeld/babeld.c b/babeld/babeld.c index 4e68f05df4..c776df0d2b 100644 --- a/babeld/babeld.c +++ b/babeld/babeld.c @@ -212,7 +212,8 @@ static void babel_init_routing_process(struct event *thread) babel_main_loop(thread);/* this function self-add to the t_update thread */ } -/* fill "myid" with an unique id (only if myid != {0}). */ +/* fill "myid" with an unique id (only if myid != {0} and myid != {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}). */ static void babel_get_myid(void) { @@ -222,7 +223,7 @@ babel_get_myid(void) int i; /* if we already have an id (from state file), we return. */ - if (memcmp(myid, zeroes, 8) != 0) { + if (memcmp(myid, zeroes, 8) != 0 && memcmp(myid, ones, 8) != 0) { return; } -- 2.39.5