diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index 8f63cc5e..485cff04 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -543,7 +543,7 @@ CdmResponseType CdmSession::Decrypt(const CdmDecryptionParameters& params) { if (!crypto_session_->IsOpen()) { LOGW("CdmSession::Decrypt: Crypto session not open"); - return CRYPTO_SESSION_OPEN_ERROR_5; + return DECRYPT_NOT_READY; } // Playback may not begin until either the start time passes or the license diff --git a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp index 72119b87..5a8603cc 100644 --- a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp @@ -314,6 +314,9 @@ status_t WVDrmPlugin::removeKeys(const Vector& sessionId) { status_t WVDrmPlugin::restoreKeys(const Vector& sessionId, const Vector& keySetId) { + if (sessionId.size() == 0 || keySetId.size() == 0) { + return android::BAD_VALUE; + } CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end()); CdmKeySetId cdmKeySetId(keySetId.begin(), keySetId.end()); diff --git a/libwvdrmengine/src_hidl/WVDrmFactory.cpp b/libwvdrmengine/src_hidl/WVDrmFactory.cpp index 9cb3f944..da934128 100644 --- a/libwvdrmengine/src_hidl/WVDrmFactory.cpp +++ b/libwvdrmengine/src_hidl/WVDrmFactory.cpp @@ -44,7 +44,7 @@ Return WVDrmFactory::createPlugin( if (!isCryptoSchemeSupported(uuid.data())) { ALOGE("Widevine Drm HAL: failed to create drm plugin, " \ "invalid crypto scheme"); - _hidl_cb(Status::BAD_VALUE, plugin); + _hidl_cb(Status::ERROR_DRM_CANNOT_HANDLE, plugin); return Void(); }