Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Feb 2002 18:15:27 +0200
From:      Ruslan Ermilov <ru@FreeBSD.ORG>
To:        Maxime Henrion <mux@sneakerz.org>
Cc:        freebsd-security@FreeBSD.ORG, "Jacques A. Vidrine" <nectar@FreeBSD.ORG>
Subject:   Re: FreeBSD 4.5 syncache problem
Message-ID:  <20020214181527.B92824@sunbay.com>
In-Reply-To: <20020214100433.A58903@sneakerz.org>
References:  <Pine.LNX.4.21.0202141402280.20567-100000@polchat.pl> <20020214073111.C26590@sneakerz.org> <20020214073707.D26590@sneakerz.org> <20020214155945.GB422@shade.nectar.cc> <20020214100433.A58903@sneakerz.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 14, 2002 at 10:04:33AM -0600, Maxime Henrion wrote:
> Jacques A. Vidrine (nectar@FreeBSD.org) wrote:
> > On Thu, Feb 14, 2002 at 07:37:07AM -0600, Maxime Henrion wrote:
> > > Maxime Henrion (mux@sneakerz.org) wrote:
> > > > kurnik@kurnik.pl (kurnik@kurnik.pl) wrote:
> > > > > Hi!
> > > > > 
> > > > > I'd like to migrate my Linux powered server to FreeBSD 4.5 but there's
> > > > > a critical syncache related bug that makes it easy to remotely cause
> > > > > kernel panic on any server running FreeBSD 4.5. 
> > > > > (more on this bug at www.freebsd.org/cgi/query-pr.cgi?pr=kern/34658)
> > > > 
> > > > Could you probide a way to reliable reproduce it ?  I'm sure this would
> > > > help a lot getting this bug fixed, since it's not mentioned in the PR.
> > > 
> > > Please discard my mail, it really looks like this is fixed in rev1.11 of
> > > tcp_syncache.c.
> > 
> > Hello Maxime,
> > 
> > Can you confirm:
> > After applying rev 1.11 of tcp_syncache.c to your 4.5-RELEASE system,
> > your issue was resolved?
> > 
> > I'd like to MFC this revision, but I wanted to be sure that it worked
> > for you on a real system.
> 
> Sorry for the confusion, but I was replying to myself here :-)  The person
> who experienced the syncache panic is kurnik@kurnik.pl.
> 
I think just MFC'ing this revision might not fix the problem.
Jonathan posted a patch along these lines (the second hunk):

Index: tcp_syncache.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/tcp_syncache.c,v
retrieving revision 1.5.2.4
diff -u -p -r1.5.2.4 tcp_syncache.c
--- tcp_syncache.c	2002/01/24 16:09:08	1.5.2.4
+++ tcp_syncache.c	2002/02/14 16:14:10
@@ -839,6 +839,11 @@ syncache_add(inc, to, th, sop, m)
 		 */
 		if (sc->sc_flags & SCF_TIMESTAMP)
 			sc->sc_tsrecent = to->to_tsval;
+		/*
+		 * PCB may have changed, pick up new values.
+		 */
+		sc->sc_tp = tp;
+		sc->sc_inp_gencnt = tp->t_inpcb->inp_gencnt;
 		if (syncache_respond(sc, m) == 0) {
 		        s = splnet();
 			TAILQ_REMOVE(&tcp_syncache.timerq[sc->sc_rxtslot],
@@ -1314,6 +1319,7 @@ syncookie_lookup(inc, th, so)
 	 * Fill in the syncache values.
 	 * XXX duplicate code from syncache_add
 	 */
+	sc->sc_tp = sototcpcb(so);
 	sc->sc_ipopts = NULL;
 	sc->sc_inc.inc_fport = inc->inc_fport;
 	sc->sc_inc.inc_lport = inc->inc_lport;


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020214181527.B92824>