From ce5493cab0e85acd5a3ac9bebae5cf7741c73d53 Mon Sep 17 00:00:00 2001 From: Danny Al-Gaaf Date: Tue, 31 Jan 2017 22:23:28 +0100 Subject: [PATCH] RadosStriperImpl.cc: fix double free 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 --- src/libradosstriper/RadosStriperImpl.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libradosstriper/RadosStriperImpl.cc b/src/libradosstriper/RadosStriperImpl.cc index dc9cb71a6c9e4..ea3be3b145c69 100644 --- a/src/libradosstriper/RadosStriperImpl.cc +++ b/src/libradosstriper/RadosStriperImpl.cc @@ -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; -- 2.39.5