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

Commit 4962676c authored by Edwin Wong's avatar Edwin Wong Committed by Android (Google) Code Review
Browse files

Merge "[Fix vulnerability] setSecurityLevel in clearkey"

parents 6c3297fe 074c39dc
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -474,6 +474,7 @@ void DrmPlugin::installSecureStop(const std::vector<uint8_t>& sessionId) {
        return toNdkScopedAStatus(Status::ERROR_DRM_SESSION_NOT_OPENED);
    }

    Mutex::Autolock lock(mSecurityLevelLock);
    std::map<std::vector<uint8_t>, ::aidl::android::hardware::drm::SecurityLevel>::iterator itr =
            mSecurityLevel.find(sid);
    if (itr == mSecurityLevel.end()) {
@@ -1009,6 +1010,7 @@ Status DrmPlugin::setSecurityLevel(const std::vector<uint8_t>& sessionId, Securi
        return Status::ERROR_DRM_SESSION_NOT_OPENED;
    }

    Mutex::Autolock lock(mSecurityLevelLock);
    std::map<std::vector<uint8_t>, SecurityLevel>::iterator itr = mSecurityLevel.find(sid);
    if (itr != mSecurityLevel.end()) {
        mSecurityLevel[sid] = level;
+3 −1
Original line number Diff line number Diff line
@@ -182,7 +182,8 @@ struct DrmPlugin : public BnDrmPlugin {
    std::map<std::string, std::vector<uint8_t>> mByteArrayProperties;
    std::map<std::string, std::vector<uint8_t>> mReleaseKeysMap;
    std::map<std::vector<uint8_t>, std::string> mPlaybackId;
    std::map<std::vector<uint8_t>, SecurityLevel> mSecurityLevel;
    std::map<std::vector<uint8_t>, SecurityLevel> mSecurityLevel
        GUARDED_BY(mSecurityLevelLock);
    ::std::shared_ptr<IDrmPluginListener> mListener;
    SessionLibrary* mSessionLibrary;
    int64_t mOpenSessionOkCount;
@@ -201,6 +202,7 @@ struct DrmPlugin : public BnDrmPlugin {

    DeviceFiles mFileHandle;
    ::android::Mutex mSecureStopLock;
    ::android::Mutex mSecurityLevelLock;

    CLEARKEY_DISALLOW_COPY_AND_ASSIGN_AND_NEW(DrmPlugin);
};
+0 −2
Original line number Diff line number Diff line
@@ -619,7 +619,6 @@ Return<void> DrmPlugin::getSecurityLevel(const hidl_vec<uint8_t>& sessionId,
        return Void();
    }

    android_errorWriteLog(0x534e4554, "235601882");
    Mutex::Autolock lock(mSecurityLevelLock);
    std::map<std::vector<uint8_t>, SecurityLevel>::iterator itr =
            mSecurityLevel.find(sid);
@@ -693,7 +692,6 @@ Return<Status> DrmPlugin::setSecurityLevel(const hidl_vec<uint8_t>& sessionId,
        return Status::ERROR_DRM_SESSION_NOT_OPENED;
    }

    android_errorWriteLog(0x534e4554, "235601882");
    Mutex::Autolock lock(mSecurityLevelLock);
    std::map<std::vector<uint8_t>, SecurityLevel>::iterator itr =
            mSecurityLevel.find(sid);