]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test_cls_version.cc: fix resource leak, delete before new()
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Mon, 22 Jul 2013 10:05:43 +0000 (12:05 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Mon, 22 Jul 2013 10:58:28 +0000 (12:58 +0200)
Fix some more cases where resource wasn't deleted/freed before
call new().

CID 1049216 (#1-9 of 9): Resource leak (RESOURCE_LEAK)
  overwrite_var: Overwriting "op" in "op = new_op()" leaks
  the storage that "op" points to.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/test/cls_version/test_cls_version.cc

index f9aa94e8f4f1aa6be074571b722995fbfbec1464..acce4f00cf4c57ebbe80841d58d3175a353b7396 100644 (file)
@@ -137,7 +137,6 @@ TEST(cls_rgw, test_version_inc_cond)
   /* add chains */
   string oid = "obj";
 
-
   /* create object */
 
   ASSERT_EQ(0, ioctx.create(oid, true));
@@ -161,6 +160,7 @@ TEST(cls_rgw, test_version_inc_cond)
 
 
   /* inc version again! */
+  delete op;
   op = new_op();
   cls_version_inc(*op);
   ASSERT_EQ(0, ioctx.operate(oid, op));
@@ -181,18 +181,22 @@ TEST(cls_rgw, test_version_inc_cond)
   ASSERT_EQ(0, (int)ver2.tag.compare(ver.tag));
 
   /* a bunch of conditions that should fail */
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_EQ);
   ASSERT_EQ(-ECANCELED, ioctx.operate(oid, op));
 
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_LT);
   ASSERT_EQ(-ECANCELED, ioctx.operate(oid, op));
 
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_LE);
   ASSERT_EQ(-ECANCELED, ioctx.operate(oid, op));
 
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_TAG_NE);
   ASSERT_EQ(-ECANCELED, ioctx.operate(oid, op));
@@ -202,18 +206,22 @@ TEST(cls_rgw, test_version_inc_cond)
   ASSERT_EQ(0, (int)ver2.tag.compare(ver.tag));
 
   /* a bunch of conditions that should succeed */
+  delete op;
   op = new_op();
   cls_version_inc(*op, ver2, VER_COND_EQ);
   ASSERT_EQ(0, ioctx.operate(oid, op));
 
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_GT);
   ASSERT_EQ(0, ioctx.operate(oid, op));
 
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_GE);
   ASSERT_EQ(0, ioctx.operate(oid, op));
 
+  delete op;
   op = new_op();
   cls_version_inc(*op, cond_ver, VER_COND_TAG_EQ);
   ASSERT_EQ(0, ioctx.operate(oid, op));
@@ -276,6 +284,7 @@ TEST(cls_rgw, test_version_inc_check)
 
   obj_version ver2;
 
+  delete op;
   op = new_op();
   cls_version_inc(*op);
   ASSERT_EQ(0, ioctx.operate(oid, op));