From: zmw12306 Date: Sat, 5 Apr 2025 19:21:27 +0000 (-0400) Subject: babeld: Add a check to prevent all-ones case X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=e43dbc8fe10290e4337a8732f7ef897a83483b36;p=matthieu%2Ffrr.git 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 --- 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; }