From: Danny Al-Gaaf Date: Tue, 30 May 2017 10:31:19 +0000 (+0200) Subject: test/librados/aio.cc: silence coverity with scope_guard X-Git-Tag: v13.0.1~1052^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f43b1f49d1ccdbd669d3dcc52f3f53a236c624e8;p=ceph.git test/librados/aio.cc: silence coverity with scope_guard Fix for: CID 1313405 (#1 of 1): Resource leak (RESOURCE_LEAK) leaked_storage: Variable my_completion2 going out of scope leaks the storage it points to. CID 1219522 (#1 of 1): Resource leak (RESOURCE_LEAK) leaked_storage: Variable my_completion going out of scope leaks the storage it points to. CID 1219501 (#1 of 1): Resource leak (RESOURCE_LEAK) leaked_storage: Variable my_completion going out of scope leaks the storage it points to. CID 1313406 (#1 of 1): Resource leak (RESOURCE_LEAK) leaked_storage: Variable my_completion2 going out of scope leaks the storage it points to. Signed-off-by: Danny Al-Gaaf --- diff --git a/src/test/librados/aio.cc b/src/test/librados/aio.cc index d795b84683fc..23b9bba109be 100644 --- a/src/test/librados/aio.cc +++ b/src/test/librados/aio.cc @@ -4,6 +4,7 @@ #include "test/librados/test.h" #include "include/types.h" #include "include/stringify.h" +#include "include/scope_guard.h" #include "gtest/gtest.h" #include @@ -257,6 +258,7 @@ TEST(LibRadosAio, SimpleWrite) { ASSERT_EQ("", test_data.init()); ASSERT_EQ(0, rados_aio_create_completion((void*)&test_data, set_completion_complete, set_completion_safe, &my_completion)); + auto sg = make_scope_guard([&] { rados_aio_release(my_completion); }); char buf[128]; memset(buf, 0xcc, sizeof(buf)); ASSERT_EQ(0, rados_aio_write(test_data.m_ioctx, "foo", @@ -272,6 +274,7 @@ TEST(LibRadosAio, SimpleWrite) { rados_completion_t my_completion2; ASSERT_EQ(0, rados_aio_create_completion((void*)&test_data, set_completion_complete, set_completion_safe, &my_completion2)); + auto sg2 = make_scope_guard([&] { rados_aio_release(my_completion2); }); ASSERT_EQ(0, rados_aio_write(test_data.m_ioctx, "foo", my_completion2, buf, sizeof(buf), 0)); { @@ -280,8 +283,6 @@ TEST(LibRadosAio, SimpleWrite) { sem_wait(test_data.m_sem); } ASSERT_EQ(0, rados_aio_get_return_value(my_completion2)); - rados_aio_release(my_completion); - rados_aio_release(my_completion2); } TEST(LibRadosAio, SimpleWritePP) { @@ -2613,6 +2614,7 @@ TEST(LibRadosAioEC, SimpleWrite) { ASSERT_EQ("", test_data.init()); ASSERT_EQ(0, rados_aio_create_completion((void*)&test_data, set_completion_completeEC, set_completion_safeEC, &my_completion)); + auto sg = make_scope_guard([&] { rados_aio_release(my_completion); }); char buf[128]; memset(buf, 0xcc, sizeof(buf)); ASSERT_EQ(0, rados_aio_write(test_data.m_ioctx, "foo", @@ -2628,6 +2630,7 @@ TEST(LibRadosAioEC, SimpleWrite) { rados_completion_t my_completion2; ASSERT_EQ(0, rados_aio_create_completion((void*)&test_data, set_completion_completeEC, set_completion_safeEC, &my_completion2)); + auto sg2 = make_scope_guard([&] { rados_aio_release(my_completion2); }); ASSERT_EQ(0, rados_aio_write(test_data.m_ioctx, "foo", my_completion2, buf, sizeof(buf), 0)); { @@ -2636,8 +2639,6 @@ TEST(LibRadosAioEC, SimpleWrite) { sem_wait(test_data.m_sem); } ASSERT_EQ(0, rados_aio_get_return_value(my_completion2)); - rados_aio_release(my_completion); - rados_aio_release(my_completion2); } TEST(LibRadosAioEC, SimpleWritePP) {