Page MenuHomeFreeBSD

D25903.diff
No OneTemporary

D25903.diff

Index: head/sys/netinet/tcp_subr.c
===================================================================
--- head/sys/netinet/tcp_subr.c
+++ head/sys/netinet/tcp_subr.c
@@ -1713,6 +1713,7 @@
if (CC_ALGO(tp)->cb_init(tp->ccv) > 0) {
if (tp->t_fb->tfb_tcp_fb_fini)
(*tp->t_fb->tfb_tcp_fb_fini)(tp, 1);
+ in_pcbrele_wlocked(inp);
refcount_release(&tp->t_fb->tfb_refcnt);
uma_zfree(V_tcpcb_zone, tm);
return (NULL);
@@ -1723,6 +1724,7 @@
if (khelp_init_osd(HELPER_CLASS_TCP, tp->osd)) {
if (tp->t_fb->tfb_tcp_fb_fini)
(*tp->t_fb->tfb_tcp_fb_fini)(tp, 1);
+ in_pcbrele_wlocked(inp);
refcount_release(&tp->t_fb->tfb_refcnt);
uma_zfree(V_tcpcb_zone, tm);
return (NULL);
@@ -1783,7 +1785,12 @@
tcp_log_tcpcbinit(tp);
#endif
if (tp->t_fb->tfb_tcp_fb_init) {
- (*tp->t_fb->tfb_tcp_fb_init)(tp);
+ if ((*tp->t_fb->tfb_tcp_fb_init)(tp)) {
+ refcount_release(&tp->t_fb->tfb_refcnt);
+ in_pcbrele_wlocked(inp);
+ uma_zfree(V_tcpcb_zone, tm);
+ return (NULL);
+ }
}
#ifdef STATS
if (V_tcp_perconn_stats_enable == 1)

File Metadata

Mime Type
text/plain
Expires
Wed, Feb 12, 1:42 PM (19 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16611376
Default Alt Text
D25903.diff (1 KB)

Event Timeline