From ed0d3eded19a4ccab0114a87a9d261b857000367 Mon Sep 17 00:00:00 2001 From: Danny Al-Gaaf Date: Wed, 12 Nov 2014 12:00:32 +0100 Subject: [PATCH] st_rados_list_objects.cc: free resources in error case Fix for: CID 1251453 (#2 of 2): Resource leak (RESOURCE_LEAK) leaked_storage: Variable io_ctx going out of scope leaks the storage it points to. CID 1251454 (#1 of 1): Resource leak (RESOURCE_LEAK) leaked_storage: Variable h going out of scope leaks the storage it points to. Signed-off-by: Danny Al-Gaaf --- src/test/system/st_rados_list_objects.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/test/system/st_rados_list_objects.cc b/src/test/system/st_rados_list_objects.cc index 628fd510e91..c53ab17ccb1 100644 --- a/src/test/system/st_rados_list_objects.cc +++ b/src/test/system/st_rados_list_objects.cc @@ -52,6 +52,7 @@ StRadosListObjects:: int StRadosListObjects:: run() { + int retval = 0; rados_t cl; RETURN1_IF_NONZERO(rados_create(&cl, NULL)); rados_conf_parse_argv(cl, m_argc, m_argv); @@ -79,7 +80,8 @@ run() if (m_accept_list_errors && (!m_midway_sem_post || saw > m_midway_cnt)) break; printf("%s: rados_objects_list_next error: %d\n", get_id_str(), ret); - return ret; + retval = ret; + goto out; } if ((saw % 25) == 0) { printf("%s: listed object %d...\n", get_id_str(), saw); @@ -92,12 +94,13 @@ run() m_midway_sem_post->post(); } } - rados_nobjects_list_close(h); printf("%s: saw %d objects\n", get_id_str(), saw); +out: + rados_nobjects_list_close(h); rados_ioctx_destroy(io_ctx); rados_shutdown(cl); - return 0; + return retval; } -- 2.47.3