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>
// 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
// 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;