]> 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)
commit607d37381393a21023e800694cd350bc74937806
treea7b1d3fddab2353229b73daaa103904ce539414d
parent6d81feb0b4e6c7731a15442ca8ff2397871ab360
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: 6c67d9803aed ("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