am 25a6185c: Address releaseAllSecureStops crash
* commit '25a6185c8434c62af73d2c6c91bda5fc50d20ca7': Address releaseAllSecureStops crash
This commit is contained in:
@@ -804,6 +804,11 @@ CdmResponseType CdmEngine::GetUsageInfo(const std::string& app_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
CdmResponseType CdmEngine::ReleaseAllUsageInfo(const std::string& app_id) {
|
CdmResponseType CdmEngine::ReleaseAllUsageInfo(const std::string& app_id) {
|
||||||
|
if (NULL == usage_property_set_.get()) {
|
||||||
|
usage_property_set_.reset(new UsagePropertySet());
|
||||||
|
}
|
||||||
|
usage_property_set_->set_app_id(app_id);
|
||||||
|
|
||||||
CdmResponseType status = NO_ERROR;
|
CdmResponseType status = NO_ERROR;
|
||||||
for (int j = kSecurityLevelL1; j < kSecurityLevelUnknown; ++j) {
|
for (int j = kSecurityLevelL1; j < kSecurityLevelUnknown; ++j) {
|
||||||
DeviceFiles handle;
|
DeviceFiles handle;
|
||||||
@@ -814,6 +819,13 @@ CdmResponseType CdmEngine::ReleaseAllUsageInfo(const std::string& app_id) {
|
|||||||
"stops", j);
|
"stops", j);
|
||||||
status = RELEASE_ALL_USAGE_INFO_ERROR_1;
|
status = RELEASE_ALL_USAGE_INFO_ERROR_1;
|
||||||
} else {
|
} else {
|
||||||
|
SecurityLevel security_level =
|
||||||
|
static_cast<CdmSecurityLevel>(j) == kSecurityLevelL3
|
||||||
|
? kLevel3
|
||||||
|
: kLevelDefault;
|
||||||
|
usage_property_set_->set_security_level(security_level);
|
||||||
|
usage_session_.reset(
|
||||||
|
new CdmSession(usage_property_set_.get(), EMPTY_ORIGIN, NULL));
|
||||||
CdmResponseType status2 = usage_session_->
|
CdmResponseType status2 = usage_session_->
|
||||||
DeleteMultipleUsageInformation(provider_session_tokens);
|
DeleteMultipleUsageInformation(provider_session_tokens);
|
||||||
if (status2 != NO_ERROR) {
|
if (status2 != NO_ERROR) {
|
||||||
@@ -826,6 +838,7 @@ CdmResponseType CdmEngine::ReleaseAllUsageInfo(const std::string& app_id) {
|
|||||||
status = RELEASE_ALL_USAGE_INFO_ERROR_2;
|
status = RELEASE_ALL_USAGE_INFO_ERROR_2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
usage_session_.reset(NULL);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user