diff options
author | Mariusz Zaborski <oshogbo@FreeBSD.org> | 2019-02-10 23:28:55 +0000 |
---|---|---|
committer | Mariusz Zaborski <oshogbo@FreeBSD.org> | 2019-02-10 23:28:55 +0000 |
commit | b5d787d93b3d83f28e87e1f8cc740cb160f8f0ac (patch) | |
tree | 01e36776752b9647e625984d05a9803d56467799 /lib/libnv/tests/nvlist_send_recv_test.c | |
parent | e0d164c7a66426c92dfb5a08a9803e323b8f90b9 (diff) | |
download | src-b5d787d93b3d83f28e87e1f8cc740cb160f8f0ac.tar.gz src-b5d787d93b3d83f28e87e1f8cc740cb160f8f0ac.zip |
libnv: fix memory leaks
nvpair_create_stringv: free the temporary string; this fix affects
nvlist_add_stringf() and nvlist_add_stringv().
nvpair_remove_nvlist_array (NV_TYPE_NVLIST_ARRAY case): free the chain
of nvpairs (as resetting it prevents nvlist_destroy() from freeing it).
Note: freeing the chain in nvlist_destroy() is not sufficient, because
it would still leak through nvlist_take_nvlist_array(). This affects
all nvlist_*_nvlist_array() use
Submitted by: Mindaugas Rasiukevicius <rmind@netbsd.org>
Reported by: clang/gcc ASAN
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=343986
Diffstat (limited to 'lib/libnv/tests/nvlist_send_recv_test.c')
-rw-r--r-- | lib/libnv/tests/nvlist_send_recv_test.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/libnv/tests/nvlist_send_recv_test.c b/lib/libnv/tests/nvlist_send_recv_test.c index 1b673b5d4259..fbc918102b50 100644 --- a/lib/libnv/tests/nvlist_send_recv_test.c +++ b/lib/libnv/tests/nvlist_send_recv_test.c @@ -304,6 +304,8 @@ parent(int sock) name = nvlist_next(nvl, &type, &cookie); CHECK(name == NULL); + + nvlist_destroy(nvl); } static void |