Skip to content

Commit 657831f

Browse files
edumazetdavem330
authored andcommitted
dccp/tcp: do not inherit mc_list from parent
syzkaller found a way to trigger double frees from ip_mc_drop_socket() It turns out that leave a copy of parent mc_list at accept() time, which is very bad. Very similar to commit 8b485ce ("tcp: do not inherit fastopen_req from parent") Initial report from Pray3r, completed by Andrey one. Thanks a lot to them ! Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: Pray3r <pray3r.z@gmail.com> Reported-by: Andrey Konovalov <andreyknvl@google.com> Tested-by: Andrey Konovalov <andreyknvl@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent e735da5 commit 657831f

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

net/ipv4/inet_connection_sock.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
794794
/* listeners have SOCK_RCU_FREE, not the children */
795795
sock_reset_flag(newsk, SOCK_RCU_FREE);
796796

797+
inet_sk(newsk)->mc_list = NULL;
798+
797799
newsk->sk_mark = inet_rsk(req)->ir_mark;
798800
atomic64_set(&newsk->sk_cookie,
799801
atomic64_read(&inet_rsk(req)->ir_cookie));

0 commit comments

Comments
 (0)