From: Danny Al-Gaaf Date: Wed, 12 Nov 2014 11:00:32 +0000 (+0100) Subject: st_rados_list_objects.cc: free resources in error case X-Git-Tag: v0.90~25^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ed0d3eded19a4ccab0114a87a9d261b857000367;p=ceph.git 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 --- diff --git a/src/test/system/st_rados_list_objects.cc b/src/test/system/st_rados_list_objects.cc index 628fd510e913..c53ab17ccb1b 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; }