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

Commit 5fee1823 authored by Jeff Tinker's avatar Jeff Tinker
Browse files

Fix potential memory leak in default drm crypto plugin

bug:70205403

Test: manual play movies test forcing the legacy default
  widevine plugin to be used, instead of the widevine hidl
  service.

Change-Id: Icb5b234999c5bf49b31d967814e48d42d9dd767f
parent 7f2292db
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -99,8 +99,8 @@ namespace implementation {
        legacyPattern.mEncryptBlocks = pattern.encryptBlocks;
        legacyPattern.mSkipBlocks = pattern.skipBlocks;

        android::CryptoPlugin::SubSample *legacySubSamples =
            new android::CryptoPlugin::SubSample[subSamples.size()];
        std::unique_ptr<android::CryptoPlugin::SubSample[]> legacySubSamples =
                std::make_unique<android::CryptoPlugin::SubSample[]>(subSamples.size());

        for (size_t i = 0; i < subSamples.size(); i++) {
            legacySubSamples[i].mNumBytesOfClearData
@@ -145,11 +145,9 @@ namespace implementation {
            destPtr = static_cast<void *>(handle);
        }
        ssize_t result = mLegacyPlugin->decrypt(secure, keyId.data(), iv.data(),
                legacyMode, legacyPattern, srcPtr, legacySubSamples,
                legacyMode, legacyPattern, srcPtr, legacySubSamples.get(),
                subSamples.size(), destPtr, &detailMessage);

        delete[] legacySubSamples;

        uint32_t status;
        uint32_t bytesWritten;