Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752596AbdIWAUk (ORCPT ); Fri, 22 Sep 2017 20:20:40 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:36497 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752446AbdIWAUW (ORCPT ); Fri, 22 Sep 2017 20:20:22 -0400 X-Google-Smtp-Source: AOwi7QDxPYn/Hj8ijhUfYGZ3z1RmTDp9acuaI4sh2JBw6U3yAIjDpBUHj46SZD45PihlYY5mr816yQ== From: Josef Bacik To: davem@davemloft.net, netdev@vger.kernel.org, kernel-team@fb.com, linux-kernel@vger.kernel.org Cc: Josef Bacik Subject: [PATCH 3/3] inet: fix improper empty comparison Date: Fri, 22 Sep 2017 20:20:08 -0400 Message-Id: <1506126008-9148-4-git-send-email-josef@toxicpanda.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506126008-9148-1-git-send-email-josef@toxicpanda.com> References: <1506126008-9148-1-git-send-email-josef@toxicpanda.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1128 Lines: 37 From: Josef Bacik When doing my reuseport rework I screwed up and changed a if (hlist_empty(&tb->owners)) to if (!hlist_empty(&tb->owners)) This is obviously bad as all of the reuseport/reuse logic was reversed, which caused weird problems like allowing an ipv4 bind conflict if we opened an ipv4 only socket on a port followed by an ipv6 only socket on the same port. Fixes: b9470c27607b ("inet: kill smallest_size and smallest_port") Reported-by: Cole Robinson Signed-off-by: Josef Bacik --- net/ipv4/inet_connection_sock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index a1bf30438bc5..c039c937ba90 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c @@ -321,7 +321,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) goto fail_unlock; } success: - if (!hlist_empty(&tb->owners)) { + if (hlist_empty(&tb->owners)) { tb->fastreuse = reuse; if (sk->sk_reuseport) { tb->fastreuseport = FASTREUSEPORT_ANY; -- 2.7.4