|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
From patchwork Mon Sep 18 16:28:57 2017
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Content-Type: text/plain; charset="utf-8"
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
MIME-Version: 1.0
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Content-Transfer-Encoding: 7bit
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Subject: [3/3] inet: fix improper empty comparison
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
X-Patchwork-Submitter: Josef Bacik <josef@toxicpanda.com>
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
X-Patchwork-Id: 815029
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
X-Patchwork-Delegate: davem@davemloft.net
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Message-Id: <1505752137-15522-4-git-send-email-jbacik@fb.com>
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
To: davem@davemloft.net, netdev@vger.kernel.org,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
linux-kernel@vger.kernel.org, crobinso@redhat.com,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
labbott@redhat.com, kernel-team@fb.com
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Cc: Josef Bacik <jbacik@fb.com>, stable@vger.kernel.org
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Date: Mon, 18 Sep 2017 12:28:57 -0400
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
From: josef@toxicpanda.com
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
List-Id: <netdev.vger.kernel.org>
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
From: Josef Bacik <jbacik@fb.com>
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
When doing my reuseport rework I screwed up and changed a
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
if (hlist_empty(&tb->owners))
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
to
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
if (!hlist_empty(&tb->owners))
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
This is obviously bad as all of the reuseport/reuse logic was reversed,
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
which caused weird problems like allowing an ipv4 bind conflict if we
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
opened an ipv4 only socket on a port followed by an ipv6 only socket on
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
the same port.
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Cc: stable@vger.kernel.org
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Fixes: b9470c27607b ("inet: kill smallest_size and smallest_port")
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Reported-by: Cole Robinson <crobinso@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
Signed-off-by: Josef Bacik <jbacik@fb.com>
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
---
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
net/ipv4/inet_connection_sock.c | 2 +-
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
index a1bf30438bc5..c039c937ba90 100644
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
--- a/net/ipv4/inet_connection_sock.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
+++ b/net/ipv4/inet_connection_sock.c
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
@@ -321,7 +321,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum)
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
goto fail_unlock;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
}
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
success:
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
- if (!hlist_empty(&tb->owners)) {
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
+ if (hlist_empty(&tb->owners)) {
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
tb->fastreuse = reuse;
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
if (sk->sk_reuseport) {
|
|
![](https://seccdn.libravatar.org/avatar/8fa9922ab9e43f028e7d892ae8332cd1187e5074c14af0b8b82c52fc6b1435fb?s=16&d=retro) |
49af9ed |
tb->fastreuseport = FASTREUSEPORT_ANY;
|