From: Craig Gallek Date: Mon, 22 Feb 2016 15:45:29 +0000 (-0500) Subject: soreuseport: fix merge conflict in tcp bind X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e5fbfc1c2d7657eafed645727cb5d74731f6d68c;p=openwrt%2Fstaging%2Fblogic.git soreuseport: fix merge conflict in tcp bind One of the validation checks for the new array-based TCP SO_REUSEPORT validation was unintentionally dropped in ea8add2b1903. This adds it back. Lack of this check allows the user to allocate multiple sock_reuseport structures (leaking all but the first). Fixes: ea8add2b1903 ("tcp/dccp: better use of ephemeral ports in bind()") Signed-off-by: Craig Gallek Signed-off-by: David S. Miller --- diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index d7682306370b..bc5196ea1bdf 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c @@ -202,6 +202,7 @@ tb_found: if (((tb->fastreuse > 0 && reuse) || (tb->fastreuseport > 0 && + !rcu_access_pointer(sk->sk_reuseport_cb) && sk->sk_reuseport && uid_eq(tb->fastuid, uid))) && smallest_size == -1) goto success;