Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F108429940
D40982.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D40982.id.diff
View Options
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1963,6 +1963,10 @@
* if seg contains an ACK, but not for our SYN/ACK, send a RST.
*/
case TCPS_SYN_RECEIVED:
+ if (thflags & TH_RST) {
+ /* Handle RST segments later. */
+ break;
+ }
if ((thflags & TH_ACK) &&
(SEQ_LEQ(th->th_ack, tp->snd_una) ||
SEQ_GT(th->th_ack, tp->snd_max))) {
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -623,18 +623,6 @@
sc = syncache_lookup(inc, &sch); /* returns locked sch */
SCH_LOCK_ASSERT(sch);
- /*
- * Any RST to our SYN|ACK must not carry ACK, SYN or FIN flags.
- * See RFC 793 page 65, section SEGMENT ARRIVES.
- */
- if (tcp_get_flags(th) & (TH_ACK|TH_SYN|TH_FIN)) {
- if ((s = tcp_log_addrs(inc, th, NULL, NULL)))
- log(LOG_DEBUG, "%s; %s: Spurious RST with ACK, SYN or "
- "FIN flag set, segment ignored\n", s, __func__);
- TCPSTAT_INC(tcps_badrst);
- goto done;
- }
-
/*
* No corresponding connection was found in syncache.
* If syncookies are enabled and possibly exclusively
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jan 25, 5:22 PM (17 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16095796
Default Alt Text
D40982.id.diff (1 KB)
Attached To
Mode
D40982: tcp: Handle <RST,ACK> in SYN-RCVD per RFC9293
Attached
Detach File
Event Timeline
Log In to Comment