diff options
author | WANG Cong <xiyou.wangcong@gmail.com> | 2017-07-17 11:42:55 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-07-17 13:37:56 -0700 |
commit | df39a9f106d53532443a804352894480ca6ca5fd (patch) | |
tree | de50c6c9a402363e37350b62dc136a7818265397 /include | |
parent | 13c401f33e19c20431d9888a91d9ea82e5133bd9 (diff) | |
download | linux-stable-df39a9f106d53532443a804352894480ca6ca5fd.tar.gz linux-stable-df39a9f106d53532443a804352894480ca6ca5fd.tar.bz2 linux-stable-df39a9f106d53532443a804352894480ca6ca5fd.zip |
bpf: check NULL for sk_to_full_sk() return value
When req->rsk_listener is NULL, sk_to_full_sk() returns
NULL too, so we have to check its return value against
NULL here.
Fixes: 40304b2a1567 ("bpf: BPF support for sock_ops")
Reported-by: David Ahern <dsahern@gmail.com>
Tested-by: David Ahern <dsahern@gmail.com>
Cc: Lawrence Brakmo <brakmo@fb.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/bpf-cgroup.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/bpf-cgroup.h b/include/linux/bpf-cgroup.h index 360c082e885c..d41d40ac3efd 100644 --- a/include/linux/bpf-cgroup.h +++ b/include/linux/bpf-cgroup.h @@ -85,7 +85,7 @@ int __cgroup_bpf_run_filter_sock_ops(struct sock *sk, int __ret = 0; \ if (cgroup_bpf_enabled && (sock_ops)->sk) { \ typeof(sk) __sk = sk_to_full_sk((sock_ops)->sk); \ - if (sk_fullsock(__sk)) \ + if (__sk && sk_fullsock(__sk)) \ __ret = __cgroup_bpf_run_filter_sock_ops(__sk, \ sock_ops, \ BPF_CGROUP_SOCK_OPS); \ |