Thread (3 messages) flat view 3 messages, 3 authors, 2018-01-09

Re: [PATCH net v2] ipv6: remove null_entry before adding default route

From: David Miller <davem@davemloft.net>
Date: 2018-01-09 17:34:37

From: Wei Wang <redacted>
Date: Mon,  8 Jan 2018 10:34:00 -0800
From: Wei Wang <redacted>

In the current code, when creating a new fib6 table, tb6_root.leaf gets
initialized to net->ipv6.ip6_null_entry.
If a default route is being added with rt->rt6i_metric = 0xffffffff,
fib6_add() will add this route after net->ipv6.ip6_null_entry. As
null_entry is shared, it could cause problem.

In order to fix it, set fn->leaf to NULL before calling
fib6_add_rt2node() when trying to add the first default route.
And reset fn->leaf to null_entry when adding fails or when deleting the
last default route.

syzkaller reported the following issue which is fixed by this commit:
 ...
Reported-by: syzbot <redacted>
Fixes: 66f5d6ce53e6 ("ipv6: replace rwlock with rcu and spinlock in fib6_table")
Signed-off-by: Wei Wang <redacted>
Applied, thank you.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help