diff options
author | Wei Wang <weiwan@google.com> | 2017-10-13 15:01:08 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-16 21:06:12 +0100 |
commit | 0e80193bd8c1d97654f1a2f45934e7372e9a512e (patch) | |
tree | de451403c6ee2bc38dca0eed86a9d0254dc06efe /lib/ratelimit.c | |
parent | 9db9583839b760fc492a7b288edfe2213184a579 (diff) |
ipv6: check fn before doing FIB6_SUBTREE(fn)
In fib6_locate(), we need to first make sure fn is not NULL before doing
FIB6_SUBTREE(fn) to avoid crash.
This fixes the following static checker warning:
net/ipv6/ip6_fib.c:1462 fib6_locate()
warn: variable dereferenced before check 'fn' (see line 1459)
net/ipv6/ip6_fib.c
1458 if (src_len) {
1459 struct fib6_node *subtree = FIB6_SUBTREE(fn);
^^^^^^^^^^^^^^^^
We shifted this dereference
1460
1461 WARN_ON(saddr == NULL);
1462 if (fn && subtree)
^^
before the check for NULL.
1463 fn = fib6_locate_1(subtree, saddr, src_len,
1464 offsetof(struct rt6_info, rt6i_src)
Fixes: 66f5d6ce53e6 ("ipv6: replace rwlock with rcu and spinlock in fib6_table")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Wei Wang <weiwan@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/ratelimit.c')
0 files changed, 0 insertions, 0 deletions