diff options
author | John Fastabend <[email protected]> | 2018-02-05 10:17:49 -0800 |
---|---|---|
committer | Daniel Borkmann <[email protected]> | 2018-02-06 11:39:32 +0100 |
commit | 1aa12bdf1bfb95db7e75bfecf0e39a65f4e8fbf8 (patch) | |
tree | ea5a01abe7ce73c70b2ca5433463b4cd45f4e8f7 /net/unix/sysctl_net_unix.c | |
parent | b11a632c442eef34a0afeba61fab923241f317e9 (diff) |
bpf: sockmap, add sock close() hook to remove socks
The selftests test_maps program was leaving dangling BPF sockmap
programs around because not all psock elements were removed from
the map. The elements in turn hold a reference on the BPF program
they are attached to causing BPF programs to stay open even after
test_maps has completed.
The original intent was that sk_state_change() would be called
when TCP socks went through TCP_CLOSE state. However, because
socks may be in SOCK_DEAD state or the sock may be a listening
socket the event is not always triggered.
To resolve this use the ULP infrastructure and register our own
proto close() handler. This fixes the above case.
Fixes: 174a79ff9515 ("bpf: sockmap with sk redirect support")
Reported-by: Prashant Bhole <[email protected]>
Signed-off-by: John Fastabend <[email protected]>
Signed-off-by: Daniel Borkmann <[email protected]>
Diffstat (limited to 'net/unix/sysctl_net_unix.c')
0 files changed, 0 insertions, 0 deletions