Daniel Borkmann says: ==================== pull-request: bpf 2021-10-07 We've added 7 non-merge commits during the last 8 day(s) which contain a total of 8 files changed, 38 insertions(+), 21 deletions(-). The main changes are: 1) Fix ARM BPF JIT to preserve caller-saved regs for DIV/MOD JIT-internal helper call, from Johan Almbladh. 2) Fix integer overflow in BPF stack map element size calculation when used with preallocation, from Tatsuhiko Yasumatsu. 3) Fix an AF_UNIX regression due to added BPF sockmap support related to shutdown handling, from Jiang Wang. 4) Fix a segfault in libbpf when generating light skeletons from objects without BTF, from Kumar Kartikeya Dwivedi. 5) Fix a libbpf memory leak in strset to free the actual struct strset itself, from Andrii Nakryiko. 6) Dual-license bpf_insn.h similarly as we did for libbpf and bpftool, with ACKs from all contributors, from Luca Boccassi. ==================== Link: https://lore.kernel.org/r/20211007135010.21143-1-daniel@iogearbox.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -2882,6 +2882,9 @@ static int unix_shutdown(struct socket *sock, int mode)
|
||||
|
||||
unix_state_lock(sk);
|
||||
sk->sk_shutdown |= mode;
|
||||
if ((sk->sk_type == SOCK_STREAM || sk->sk_type == SOCK_SEQPACKET) &&
|
||||
mode == SHUTDOWN_MASK)
|
||||
sk->sk_state = TCP_CLOSE;
|
||||
other = unix_peer(sk);
|
||||
if (other)
|
||||
sock_hold(other);
|
||||
@@ -2904,12 +2907,10 @@ static int unix_shutdown(struct socket *sock, int mode)
|
||||
other->sk_shutdown |= peer_mode;
|
||||
unix_state_unlock(other);
|
||||
other->sk_state_change(other);
|
||||
if (peer_mode == SHUTDOWN_MASK) {
|
||||
if (peer_mode == SHUTDOWN_MASK)
|
||||
sk_wake_async(other, SOCK_WAKE_WAITD, POLL_HUP);
|
||||
other->sk_state = TCP_CLOSE;
|
||||
} else if (peer_mode & RCV_SHUTDOWN) {
|
||||
else if (peer_mode & RCV_SHUTDOWN)
|
||||
sk_wake_async(other, SOCK_WAKE_WAITD, POLL_IN);
|
||||
}
|
||||
}
|
||||
if (other)
|
||||
sock_put(other);
|
||||
|
||||
Reference in New Issue
Block a user