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@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."