diff --git a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp index f21b8564..2ab88b9d 100644 --- a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp @@ -142,14 +142,16 @@ WVDrmPlugin::~WVDrmPlugin() { } } mCryptoSessions.clear(); - CdmIdentifier identifier; - Status status = mCdmIdentifierBuilder.getCdmIdentifier(&identifier); - if (status != Status::OK) { - ALOGE("Failed to get cdm identifier %d", status); - } else { - status = mapCdmResponseType(mCDM->CloseCdm(identifier)); + if (mCdmIdentifierBuilder.is_sealed()) { + CdmIdentifier identifier; + Status status = mCdmIdentifierBuilder.getCdmIdentifier(&identifier); if (status != Status::OK) { - ALOGE("Failed to close cdm. status %d", status); + ALOGE("Failed to get cdm identifier %d", status); + } else { + status = mapCdmResponseType(mCDM->CloseCdm(identifier)); + if (status != Status::OK) { + ALOGE("Failed to close cdm. status %d", status); + } } } }