From: Danny Al-Gaaf Date: Sat, 20 Jul 2013 17:36:32 +0000 (+0200) Subject: test_cls_version.cc: don't free object twice, free the right one X-Git-Tag: v0.67-rc1~10^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d181aaaed45fcdf997d2cd1bf627d90ae643cff1;p=ceph.git test_cls_version.cc: don't free object twice, free the right one Object 'librados::ObjectWriteOperation *op' is freed twice in the TEST test_version_inc_read. Free instead 'librados::ObjectReadOperation *rop' Related cppcheck warning: [src/test/cls_version/test_cls_version.cc:79]: (error) Memory pointed to by 'op' is freed twice. This should also fix: CID 1049247 (#1 of 1): Use after free (USE_AFTER_FREE) deref_arg: Calling "librados::ObjectWriteOperation::~ObjectWriteOperation()" dereferences freed pointer "op". (The dereference happens because this is a virtual function call.) CID 1049218 (#4 of 4): Resource leak (RESOURCE_LEAK) leaked_storage: Variable "rop" going out of scope leaks the storage it points to. Signed-off-by: Danny Al-Gaaf --- diff --git a/src/test/cls_version/test_cls_version.cc b/src/test/cls_version/test_cls_version.cc index 6392424644a5..caa0a36cd74a 100644 --- a/src/test/cls_version/test_cls_version.cc +++ b/src/test/cls_version/test_cls_version.cc @@ -76,7 +76,7 @@ TEST(cls_rgw, test_version_inc_read) ASSERT_EQ(ver2.ver, ver3.ver); ASSERT_EQ(1, (long long)ver2.compare(&ver3)); - delete op; + delete rop; }