]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
RadosStriperImpl.cc: fix double free
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Tue, 31 Jan 2017 21:23:28 +0000 (22:23 +0100)
committerSage Weil <sage@redhat.com>
Thu, 9 Feb 2017 02:54:25 +0000 (21:54 -0500)
Some variables have been already free'd by calling
release(), no need to call delete() again on them.

CID 1396200 (#1 of 1): Double free (USE_AFTER_FREE)
 double_free: Calling operator delete frees pointer
 getxattr_completion which has already been freed.
CID 1396206 (#1 of 1): Double free (USE_AFTER_FREE)
 double_free: Calling operator delete frees pointer
 getxattr_completion which has already been freed.
CID 1396214 (#1 of 1): Double free (USE_AFTER_FREE)
 double_free: Calling operator delete frees pointer
 stat_completion which has already been freed.
CID 1396218 (#1 of 1): Double free (USE_AFTER_FREE)
 double_free: Calling operator delete frees pointer
 stat_completion which has already been freed.

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

index dc9cb71a6c9e4099ba520644a54ed7efdd293786..ea3be3b145c69da0ca212c6925f8810e382593bf 100644 (file)
@@ -676,7 +676,6 @@ int libradosstriper::RadosStriperImpl::aio_generic_stat
     // nothing is really started so cancel everything
     delete multi_completion;
     delete cdata;
-    delete stat_completion;
     return rc;
   }
   // use a regular AioCompletion for the getxattr async call
@@ -692,7 +691,6 @@ int libradosstriper::RadosStriperImpl::aio_generic_stat
     // the async stat is ongoing, so we need to go on
     // we mark the getxattr as failed in the data object
     cdata->m_getxattrRC = rc;
-    delete getxattr_completion;
     multi_completion->complete_request(rc);
     multi_completion->put();
     return rc;