summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2008-12-16 00:20:49 +0000
committerkmacy <kmacy@FreeBSD.org>2008-12-16 00:20:49 +0000
commitc9eebde165e93fa0717dca30fdfe0c687483b38a (patch)
treec475649d4979a66d38b5422521505b1aa677bceb /sys
parent5cdc211f638438961eaa38c59ae16c94c1010f03 (diff)
downloadFreeBSD-src-c9eebde165e93fa0717dca30fdfe0c687483b38a.zip
FreeBSD-src-c9eebde165e93fa0717dca30fdfe0c687483b38a.tar.gz
unlock and destroy an llentry's lock before freeing
Found by: sam
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/in.c2
-rw-r--r--sys/netinet6/in6.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/netinet/in.c b/sys/netinet/in.c
index 852ef6d..94535b1 100644
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -1060,6 +1060,8 @@ in_lltable_new(const struct sockaddr *l3addr, u_int flags)
static void
in_lltable_free(struct lltable *llt, struct llentry *lle)
{
+ LLE_WUNLOCK(lle);
+ LLE_LOCK_DESTROY(lle);
free(lle, M_LLTABLE);
}
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index 8127281..6138533 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -2115,6 +2115,8 @@ in6_lltable_new(const struct sockaddr *l3addr, u_int flags)
static void
in6_lltable_free(struct lltable *llt, struct llentry *lle)
{
+ LLE_WUNLOCK(lle);
+ LLE_LOCK_DESTROY(lle);
free(lle, M_LLTABLE);
}
OpenPOWER on IntegriCloud