Page MenuHomeFreeBSD

D44746.diff
No OneTemporary

D44746.diff

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
@@ -2337,9 +2337,11 @@
/*
* If new data are received on a connection after the
- * user processes are gone, then RST the other end.
+ * user processes are gone, then RST the other end if
+ * no FIN has been processed.
*/
- if ((tp->t_flags & TF_CLOSED) && tlen) {
+ if ((tp->t_flags & TF_CLOSED) && tlen > 0 &&
+ TCPS_HAVERCVDFIN(tp->t_state) == 0) {
if ((s = tcp_log_addrs(inc, th, NULL, NULL))) {
log(LOG_DEBUG, "%s; %s: %s: Received %d bytes of data "
"after socket was closed, "
diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c
--- a/sys/netinet/tcp_stacks/bbr.c
+++ b/sys/netinet/tcp_stacks/bbr.c
@@ -9555,15 +9555,6 @@
if (ctf_drop_checks(to, m, th, tp, &tlen, &thflags, &drop_hdrlen, &ret_val)) {
return (ret_val);
}
- /*
- * If new data are received on a connection after the user processes
- * are gone, then RST the other end.
- * We call a new function now so we might continue and setup
- * to reset at all data being ack'd.
- */
- if ((tp->t_flags & TF_CLOSED) && tlen &&
- bbr_check_data_after_close(m, bbr, tp, &tlen, th, so))
- return (1);
/*
* If last ACK falls within this segment's sequence numbers, record
* its timestamp. NOTE: 1) That the test incorporates suggestions
@@ -9666,15 +9657,6 @@
if (ctf_drop_checks(to, m, th, tp, &tlen, &thflags, &drop_hdrlen, &ret_val)) {
return (ret_val);
}
- /*
- * If new data are received on a connection after the user processes
- * are gone, then RST the other end.
- * We call a new function now so we might continue and setup
- * to reset at all data being ack'd.
- */
- if ((tp->t_flags & TF_CLOSED) && tlen &&
- bbr_check_data_after_close(m, bbr, tp, &tlen, th, so))
- return (1);
/*
* If last ACK falls within this segment's sequence numbers, record
* its timestamp. NOTE: 1) That the test incorporates suggestions
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -14997,13 +14997,6 @@
&rack->r_ctl.challenge_ack_cnt)) {
return (ret_val);
}
- /*
- * If new data are received on a connection after the user processes
- * are gone, then RST the other end.
- */
- if ((tp->t_flags & TF_CLOSED) && tlen &&
- rack_check_data_after_close(m, tp, &tlen, th, so))
- return (1);
/*
* If last ACK falls within this segment's sequence numbers, record
* its timestamp. NOTE: 1) That the test incorporates suggestions
@@ -15112,13 +15105,6 @@
&rack->r_ctl.challenge_ack_cnt)) {
return (ret_val);
}
- /*
- * If new data are received on a connection after the user processes
- * are gone, then RST the other end.
- */
- if ((tp->t_flags & TF_CLOSED) && tlen &&
- rack_check_data_after_close(m, tp, &tlen, th, so))
- return (1);
/*
* If last ACK falls within this segment's sequence numbers, record
* its timestamp. NOTE: 1) That the test incorporates suggestions

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 21, 2:38 AM (22 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14752594
Default Alt Text
D44746.diff (3 KB)

Event Timeline