bird incorrectly merging next hops

Ondrej Zajicek santiago at crfreenet.org
Thu Dec 15 15:26:39 CET 2016


On Thu, Dec 15, 2016 at 12:42:37PM +0000, Bernardo Figueiredo wrote:
> Hi,

Hi

> At our network we use bird in all our Linux routers so they talk
> OSPF.

Glad to hear that.

> After looking through the code we found that the bug is in function
> 'ospf_ext_spf' in file 'proto/ospf/rt.c'.  The variable 'nfa' of type
> 'struct orta' is not totally cleaned before each start of the
> 'WALK_SLIST' loop, and can have a wrong value of 'nfa.nhs_reuse = 1'
> instead of nfa.nhs_reuse = 0', which is what triggers the bug.>
>
> The fix is to put the declaration of 'orta nfa = {};' inside the loop,
> so the variable is clean at the start of each loop.

You are right, that is the reasonable fix. Thanks for the thorough analysis.

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20161215/6966beb2/attachment.asc>


More information about the Bird-users mailing list