]> git.baikalelectronics.ru Git - kernel.git/commit
net: defer call to cgroup_sk_alloc()
authorEric Dumazet <edumazet@google.com>
Mon, 9 Oct 2017 04:44:52 +0000 (21:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 10 Oct 2017 03:55:01 +0000 (20:55 -0700)
commitf9a370f43c9a21d915b7c89ffaecbcd66a7b4173
treea7b1d3fddab2353229b73daaa103904ce539414d
parentc8ae3b7e40879e56e385bbd231906708458a52ad
net: defer call to cgroup_sk_alloc()

sk_clone_lock() might run while TCP/DCCP listener already vanished.

In order to prevent use after free, it is better to defer cgroup_sk_alloc()
to the point we know both parent and child exist, and from process context.

Fixes: d3095cf46591 ("tcp: do not lock listener to process SYN packets")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
kernel/cgroup/cgroup.c
net/core/sock.c
net/ipv4/inet_connection_sock.c