]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
batman-adv: dat: fix tie-break for candidate selection
authorSven Eckelmann <sven@narfation.org>
Thu, 2 Jul 2026 17:32:40 +0000 (19:32 +0200)
committerSven Eckelmann <sven@narfation.org>
Mon, 6 Jul 2026 05:18:59 +0000 (07:18 +0200)
commit98052bdaf6ac1639a63ffc10244eeeab1f62ed2b
tree275c86bfada98d72321f3bf75b251e0c5019dac1
parent38eaed28e250895d56f4b7989bd65479a511c5c3
batman-adv: dat: fix tie-break for candidate selection

The original version of the candidate selection for DAT attempted to
compare both candidate and max_orig_node to identify which has the smaller
MAC address. This comparison is required as tie-break when a hash collision
happened.

But the used function returned 0 when the function was not equal and a
non-zero value when it was equal. As result, the actually selected
node was dependent on the order of entries in the orig_hash and not
actually on the mac addresses. The last originator in the hash collision
would always win.

To have a proper ordering, it must diff the actual MAC address bytes and
reject the candidate when the diff is not smaller than 0.

Cc: stable@vger.kernel.org
Fixes: 785ea1144182 ("batman-adv: Distributed ARP Table - create DHT helper functions")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
net/batman-adv/distributed-arp-table.c