diff options
author | cem <cem@FreeBSD.org> | 2015-11-18 23:53:13 +0000 |
---|---|---|
committer | cem <cem@FreeBSD.org> | 2015-11-18 23:53:13 +0000 |
commit | 6ae0b4f9be2b79ffde9848f96e414b5dcff599ad (patch) | |
tree | ba6a77a0fe755b08a3cc6d9d65348846d40cf2e5 /tools | |
parent | a4cd1c7d39390fde357dda05b99473229331d9fc (diff) | |
download | FreeBSD-src-6ae0b4f9be2b79ffde9848f96e414b5dcff599ad.zip FreeBSD-src-6ae0b4f9be2b79ffde9848f96e414b5dcff599ad.tar.gz |
in_getmulti: Fix recursion on if_addr_lock on malloc failure
When the M_NOWAIT allocation fails, we recurse the if_addr_lock trying
to clean up. Reorder the cleanup after dropping the if_addr_lock. The
obvious race is already possible between if_addmulti and IF_ADDR_WLOCK
above, so it must be ok.
Submitted by: Ryan Libby <rlibby@gmail.com>
Reviewed by: jhb
Found with: M_NOWAIT failure injection testing
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D4138
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions