Page MenuHomeFreeBSD

D32965.diff
No OneTemporary

D32965.diff

diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -275,16 +275,17 @@
* Reached limit on total number of TIMEWAIT connections
* allowed. Remove a connection from TIMEWAIT queue in LRU
* fashion to make room for this connection.
+ * If that fails, use on stack tw at least to be able to
+ * run through tcp_twrespond() and standard tcpcb discard
+ * routine.
*
* XXX: Check if it possible to always have enough room
* in advance based on guarantees provided by uma_zalloc().
*/
tw = tcp_tw_2msl_scan(1);
if (tw == NULL) {
- tp = tcp_close(tp);
- if (tp != NULL)
- INP_WUNLOCK(inp);
- return;
+ tw = &twlocal;
+ local = true;
}
}
/*

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 23, 2:19 PM (21 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12549650
Default Alt Text
D32965.diff (780 B)

Event Timeline