summaryrefslogtreecommitdiffstats
path: root/sys/netinet/raw_ip.c
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2003-11-17 19:21:53 +0000
committercognet <cognet@FreeBSD.org>2003-11-17 19:21:53 +0000
commitb60bc6ed206a0508741ee5ab94aa780a97c8d1ba (patch)
treea5c7741fd92b6a9a9c69a0c09399ae16a2d8d4cd /sys/netinet/raw_ip.c
parent2ddfca621f7950264b1bcfef86ad1cbff4683413 (diff)
downloadFreeBSD-src-b60bc6ed206a0508741ee5ab94aa780a97c8d1ba.zip
FreeBSD-src-b60bc6ed206a0508741ee5ab94aa780a97c8d1ba.tar.gz
In rip_abort(), unlock the inpcb if we didn't detach it, or we may
recurse on the lock before destroying the mutex. Submitted by: sam
Diffstat (limited to 'sys/netinet/raw_ip.c')
-rw-r--r--sys/netinet/raw_ip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index 1c861f4..8e02e41 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -604,6 +604,8 @@ rip_abort(struct socket *so)
soisdisconnected(so);
if (so->so_state & SS_NOFDREF)
rip_pcbdetach(so, inp);
+ else
+ INP_UNLOCK(inp);
INP_INFO_WUNLOCK(&ripcbinfo);
return 0;
}
OpenPOWER on IntegriCloud