OSDN Git Service

bpf: sockmap missing NULL psock check
authorJohn Fastabend <john.fastabend@gmail.com>
Fri, 5 Jan 2018 04:02:09 +0000 (20:02 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Sat, 6 Jan 2018 23:01:46 +0000 (00:01 +0100)
commit5731a879d03bdaa00265f8ebc32dfd0e65d25276
tree3a9d68d5c946353b0f0583e3440655e555826d60
parent5133550296d43236439494aa955bfb765a89f615
bpf: sockmap missing NULL psock check

Add psock NULL check to handle a racing sock event that can get the
sk_callback_lock before this case but after xchg happens causing the
refcnt to hit zero and sock user data (psock) to be null and queued
for garbage collection.

Also add a comment in the code because this is a bit subtle and
not obvious in my opinion.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
kernel/bpf/sockmap.c