Page MenuHomeFreeBSD

D32975.id98444.diff
No OneTemporary

D32975.id98444.diff

diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -2073,11 +2073,17 @@
free(ptr, M_CC_MEM);
goto do_over;
}
- if (ptr) {
+ INP_WLOCK(inp);
+ if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) {
+ INP_WUNLOCK(inp);
+ CC_LIST_RUNLOCK();
+ if (ptr != NULL)
+ free(ptr, M_CC_MEM);
+ return (ECONNRESET);
+ }
+ tp = intotcpcb(inp);
+ if (ptr != NULL)
memset(ptr, 0, mem_sz);
- INP_WLOCK_RECHECK_CLEANUP(inp, free(ptr, M_CC_MEM));
- } else
- INP_WLOCK_RECHECK(inp);
CC_LIST_RUNLOCK();
cc_mem.ccvc.tcp = tp;
/*

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 6, 10:09 AM (11 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17012519
Default Alt Text
D32975.id98444.diff (612 B)

Event Timeline