]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test_cls_version.cc: don't free object twice, free the right one
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Sat, 20 Jul 2013 17:36:32 +0000 (19:36 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Sat, 20 Jul 2013 17:43:29 +0000 (19:43 +0200)
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 <danny.al-gaaf@bisect.de>
src/test/cls_version/test_cls_version.cc

index 6392424644a50e42401e900df986068f0dddfe4d..caa0a36cd74a74eca9dfa9fc48f6c60a3aba99a4 100644 (file)
@@ -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;
 }