From owner-freebsd-bugs@freebsd.org Thu Jun 30 19:12:01 2016 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4683BB87327 for ; Thu, 30 Jun 2016 19:12:01 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1E8A52DFF for ; Thu, 30 Jun 2016 19:12:01 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id u5UJC0UJ002480 for ; Thu, 30 Jun 2016 19:12:00 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 210726] tcp connect() EADDRINUSE Date: Thu, 30 Jun 2016 19:12:01 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.3-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: aler@playground.ru X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jun 2016 19:12:01 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D210726 Bug ID: 210726 Summary: tcp connect() EADDRINUSE Product: Base System Version: 10.3-STABLE Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: aler@playground.ru Port autoselection on connect() without bind() (or with bind() with zero sin_port) sometimes works wronly and gives already busy local port number that will lead to EADDRINUSE on connection attempt. This all happens when jails used. How to fix: src/sys/netinet/in_pcb.c, in_pcb_lport() function calls to in_pcblookup_local() should have last argument NULL, not cred that's because here we are not about getting some access but about avoiding port number conflicts, so all inpcb's should be taken in account This all applies to FreeBSD 9.x, 10.x and HEAD (possibly older versions too= ). Patch: diff -ur src-svn/10.2/sys/netinet/in_pcb.c src/sys/netinet/in_pcb.c --- src-svn/10.2/sys/netinet/in_pcb.c 2016-03-15 22:58:38.088511000 +0300 +++ src/sys/netinet/in_pcb.c 2016-05-20 14:51:43.340568000 +0300 @@ -452,7 +452,7 @@ #endif #ifdef INET tmpinp =3D in_pcblookup_local(pcbinfo, laddr, - lport, lookupflags, cred); + lport, lookupflags, NULL /*cred*/); #endif } while (tmpinp !=3D NULL); --=20 You are receiving this mail because: You are the assignee for the bug.=