This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: SYN problem with new TCP/IP stack
On 2006-02-12, Andrew Lunn <andrew@lunn.ch> wrote:
> For things like this i generally go back to the FreeBSD sources and
> study them.
Done.
> I don't see anything in the latest code which indicates that this
> "problem" has been fixed. Im actually woundering if this is
> deliberate.
In the beginning, both NetBSD and FreeBSD had the same code:
/*
* If the ACK bit is off we drop the segment and return.
*/
if ((tiflags & TH_ACK) == 0)
goto drop;
On Fri Apr 9 22:05:19 1999 UTC, NetBSD tcp_input.c version 1.78
fixed the problem I've reported. Here's the CVS log entry:
Ensure that out of window SYNs receive an ACK in responce,
rather than being dropped. This fixes a bug reported by
Jason Thorpe.
[And I thought I may have managed to be the first person to
find this particular bug in the BSD TCP code. There goes my
claim to fame...]
So, after that fix, the NetBSD code looks like this:
/*
* If the ACK bit is off we drop the segment and return.
*/
if ((tiflags & TH_ACK) == 0) {
if (tp->t_flags & TF_ACKNOW)
goto dropafterack;
else
goto drop;
The same fix was never made to the FreeBSD stack.
> So, well, err. I think you should take this up with the
> FreeBSD people. Find out if they think this is a bug or a
> security feature.
I guess I'll start out by submitting a normal problem report.
--
Grant Edwards grante Yow!
at TAILFINS!!... click...
visi.com
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss