diff options
author | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-07-20 19:36:32 +0200 |
---|---|---|
committer | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-07-20 19:43:29 +0200 |
commit | d181aaaed45fcdf997d2cd1bf627d90ae643cff1 (patch) | |
tree | c6dffe2d4dded01235c238881437cf807038dc15 | |
parent | 11c51e84850335af0027bb9a859730427e758e4f (diff) | |
download | ceph-d181aaaed45fcdf997d2cd1bf627d90ae643cff1.tar.gz |
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 <danny.al-gaaf@bisect.de>
-rw-r--r-- | src/test/cls_version/test_cls_version.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/test/cls_version/test_cls_version.cc b/src/test/cls_version/test_cls_version.cc index 6392424644a..caa0a36cd74 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; } |