Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jun 1997 21:23:49 +1000 (EST)
From:      Darren Reed <darrenr@cyber.com.au>
To:        dg@root.com
Cc:        security@freebsd.org
Subject:   Re: TCP RST Handling in 2.2 (fwd)
Message-ID:  <199706031123.VAA03044@plum.cyber.com.au>
In-Reply-To: <199706031120.EAA06181@implode.root.com> from "David Greenman" at Jun 3, 97 04:20:16 am

next in thread | previous in thread | raw e-mail | index | archive | help
In some mail I received from David Greenman, sie wrote
> 
> >! 	if (tiflags&TH_RST) {
> >  
> >! 		if ((ti->ti_seq != tp->rcv_nxt) ||
> >! 		    (ti->ti_ack && ((SEQ_LEQ(ti->ti_ack, tp->iss) ||
> >! 		      SEQ_GT(ti->ti_ack, tp->snd_max)))))
> >! 			goto drop;
> 
>    This looks highly bogus to me. What happens if the server crashes and comes
> back up? The code as written above appears to drop all attempts by the server
> to issue an RST...right?

No.  An RST must be issued for a packet that it has received.  These usually
come out of tcp_respond() which uses the original packet (with the SEQ & ACK
numbers).

Or is there a situation which I'm missing here ?

Darren



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