Date: Fri, 21 Jan 2000 22:32:15 -0800 From: gdonl@tsc.tdk.com (Don Lewis) To: Brett Glass <brett@lariat.org>, gdonl@tsc.tdk.com (Don Lewis), Matthew Dillon <dillon@apollo.backplane.com>, Giorgos Keramidas <charon@hades.hell.gr> Cc: Warner Losh <imp@village.org>, Darren Reed <avalon@coombs.anu.edu.au>, security@FreeBSD.ORG Subject: Re: stream.c worst-case kernel paths Message-ID: <200001220632.WAA15894@salsa.gv.tsc.tdk.com> In-Reply-To: Brett Glass <brett@lariat.org> "Re: stream.c worst-case kernel paths" (Jan 21, 11:09pm)
next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 21, 11:09pm, Brett Glass wrote: } Subject: Re: stream.c worst-case kernel paths } At 10:51 PM 1/21/2000 , Don Lewis wrote: } } >+ if ((thflags & (TH_ACK|TH_SYN)) == TH_SYN) } >+ wildcard = 1; } } Looks good! But wouldn't it be better to do: } } if ((thflags & (TH_RST|TH_ACK|TH_SYN)) == TH_SYN) } wildcard = 1; } } to make sure it's really a legitimate SYN? That's a fairly minor optimization because the code that handles listening sockets does a check for TH_RST right off the bat, but since this particular optimization has zero cost ... Actually, I think TH_SYN+TH_RST should immediately go to "drop", do not pass GO, do not collect $200 ... } And what } about SYN-FIN packets? (If we want to avoid looking } for a listener on those, we need to "or" TH_FIN into the } inntermost constant expression too.) They need to look for listening sockets in the T/TCP case. 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?200001220632.WAA15894>