Page MenuHomeFreeBSD

D44746.id136875.diff
No OneTemporary

D44746.id136875.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/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, 4:32 AM (14 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14754463
Default Alt Text
D44746.id136875.diff (1 KB)

Event Timeline