From 1a9b1a0ad3e1e98a307c8a99211ebc3a94b4ac3e Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 29 Dec 2019 10:12:23 -0800 Subject: fixes #1065 resolver leaks work structures This includes changes to support setting the sanitizer *correctly* (the old code CMake stuff didn't quite get it right), and addresses a number of failures in the test code found by the address sanitizer. --- src/platform/posix/posix_resolv_gai.c | 3 +-- src/platform/windows/win_resolv.c | 3 +-- src/protocol/reqrep0/reqrep_test.c | 4 ++++ src/supplemental/websocket/websocket_test.c | 2 -- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/platform/posix/posix_resolv_gai.c b/src/platform/posix/posix_resolv_gai.c index 9e577403..aa70a916 100644 --- a/src/platform/posix/posix_resolv_gai.c +++ b/src/platform/posix/posix_resolv_gai.c @@ -337,9 +337,8 @@ resolv_worker(void *notused) nni_aio_set_sockaddr(aio, &item->sa); nni_aio_finish(aio, rv, 0); - - NNI_FREE_STRUCT(item); } + NNI_FREE_STRUCT(item); } nni_mtx_unlock(&resolv_mtx); } diff --git a/src/platform/windows/win_resolv.c b/src/platform/windows/win_resolv.c index 53a39118..745f03d1 100644 --- a/src/platform/windows/win_resolv.c +++ b/src/platform/windows/win_resolv.c @@ -300,9 +300,8 @@ resolv_worker(void *notused) item->aio = NULL; nni_aio_finish(aio, rv, 0); - - NNI_FREE_STRUCT(item); } + NNI_FREE_STRUCT(item); } nni_mtx_unlock(&resolv_mtx); } diff --git a/src/protocol/reqrep0/reqrep_test.c b/src/protocol/reqrep0/reqrep_test.c index 09ba9ba3..b68c08cb 100644 --- a/src/protocol/reqrep0/reqrep_test.c +++ b/src/protocol/reqrep0/reqrep_test.c @@ -35,8 +35,10 @@ test_req_rep_identity(void) TEST_CHECK(p == NNI_PROTO(3u, 1u)); // 49 TEST_CHECK(nng_getopt_string(s, NNG_OPT_PROTONAME, &n) == 0); TEST_CHECK(strcmp(n, "req") == 0); + nng_strfree(n); TEST_CHECK(nng_getopt_string(s, NNG_OPT_PEERNAME, &n) == 0); TEST_CHECK(strcmp(n, "rep") == 0); + nng_strfree(n); TEST_CHECK(nng_close(s) == 0); TEST_CHECK(nng_rep0_open(&s) == 0); @@ -46,8 +48,10 @@ test_req_rep_identity(void) TEST_CHECK(p == NNI_PROTO(3u, 0u)); // 48 TEST_CHECK(nng_getopt_string(s, NNG_OPT_PROTONAME, &n) == 0); TEST_CHECK(strcmp(n, "rep") == 0); + nng_strfree(n); TEST_CHECK(nng_getopt_string(s, NNG_OPT_PEERNAME, &n) == 0); TEST_CHECK(strcmp(n, "req") == 0); + nng_strfree(n); TEST_CHECK(nng_close(s) == 0); } diff --git a/src/supplemental/websocket/websocket_test.c b/src/supplemental/websocket/websocket_test.c index 831c6d43..9d99f2c2 100644 --- a/src/supplemental/websocket/websocket_test.c +++ b/src/supplemental/websocket/websocket_test.c @@ -337,8 +337,6 @@ test_websocket_fragmentation(void) nng_stream_listener_set_size(l, NNG_OPT_WS_SENDMAXFRAME, 1000000)); TEST_NNG_PASS(nng_stream_listener_listen(l)); - TEST_NNG_PASS(nng_aio_alloc(&laio, NULL, NULL)); - TEST_NNG_PASS(nng_aio_alloc(&daio, NULL, NULL)); nng_aio_set_timeout(laio, 2000); nng_aio_set_timeout(daio, 2000); -- cgit v1.2.3-70-g09d2