diff mbox

[net-next] soreuseport: fix merge conflict in tcp bind

Message ID 1456155929-2708-1-git-send-email-kraigatgoog@gmail.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Craig Gallek Feb. 22, 2016, 3:45 p.m. UTC
From: Craig Gallek <kraig@google.com>

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 <kraig@google.com>
---
 net/ipv4/inet_connection_sock.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Miller Feb. 24, 2016, 6:38 p.m. UTC | #1
From: Craig Gallek <kraigatgoog@gmail.com>
Date: Mon, 22 Feb 2016 10:45:29 -0500

> From: Craig Gallek <kraig@google.com>
> 
> 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 <kraig@google.com>

Applied, thanks Craig.
diff mbox

Patch

diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
index 3d28c6d5c3c3..fb0349acbd45 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;