diff options
author | kmacy <kmacy@FreeBSD.org> | 2008-12-16 00:20:49 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2008-12-16 00:20:49 +0000 |
commit | c9eebde165e93fa0717dca30fdfe0c687483b38a (patch) | |
tree | c475649d4979a66d38b5422521505b1aa677bceb /sys | |
parent | 5cdc211f638438961eaa38c59ae16c94c1010f03 (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/netinet6/in6.c | 2 |
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); } |