ipv6: Fix OOPS in ip6_dst_lookup_tail().
This fixes kernel bugzilla 11469: "TUN with 1024 neighbours: ip6_dst_lookup_tail NULL crash" dst->neighbour is not necessarily hooked up at this point in the processing path, so blindly dereferencing it is the wrong thing to do. This NULL check exists in other similar paths and this case was just an oversight. Also fix the completely wrong and confusing indentation here while we're at it. Based upon a patch by Evgeniy Polyakov. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
225f40055f
commit
e550dfb0c2
|
@ -951,7 +951,7 @@ static int ip6_dst_lookup_tail(struct sock *sk,
|
|||
* dst entry and replace it instead with the
|
||||
* dst entry of the nexthop router
|
||||
*/
|
||||
if (!((*dst)->neighbour->nud_state & NUD_VALID)) {
|
||||
if ((*dst)->neighbour && !((*dst)->neighbour->nud_state & NUD_VALID)) {
|
||||
struct inet6_ifaddr *ifp;
|
||||
struct flowi fl_gw;
|
||||
int redirect;
|
||||
|
|
Loading…
Reference in New Issue