Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67810646 authored by Zhizhou Yang's avatar Zhizhou Yang
Browse files

Fix memory leak warning in FwdLockEngine.cpp

If addValue does not succeed, there will be memory leak on
decodeSession. Fixed it by checking if addValue returns true first.

Plus fixed a small indentation error.

Test: mmm with static analyzer and warning disappears.
Change-Id: Ibf9b85e4c416e8fea8b80a3ba47f87f88573c54c
parent f402866c
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -502,8 +502,8 @@ status_t FwdLockEngine::onOpenDecryptSession(int /* uniqueId */,
        int retVal = FwdLockFile_CheckHeaderIntegrity(fileDesc);
        DecodeSession* decodeSession = new DecodeSession(fileDesc);

        if (retVal && NULL != decodeSession) {
            decodeSessionMap.addValue(decryptHandle->decryptId, decodeSession);
        if (retVal && NULL != decodeSession &&
            decodeSessionMap.addValue(decryptHandle->decryptId, decodeSession)) {
            const char *pmime= FwdLockFile_GetContentType(fileDesc);
            String8 contentType = String8(pmime == NULL ? "" : pmime);
            contentType.toLower();
@@ -513,7 +513,11 @@ status_t FwdLockEngine::onOpenDecryptSession(int /* uniqueId */,
            decryptHandle->decryptInfo = NULL;
            result = DRM_NO_ERROR;
        } else {
            if (retVal && NULL != decodeSession) {
              LOG_VERBOSE("FwdLockEngine::onOpenDecryptSession Integrity Check failed for the fd");
            } else {
              LOG_VERBOSE("FwdLockEngine::onOpenDecryptSession DecodeSesssion insertion failed");
            }
            FwdLockFile_detach(fileDesc);
            delete decodeSession;
        }