Bug 1410689 - Early return before creating ChromiumCDM8BackwardsCompat to avoid leak. r?gerald
MozReview-Commit-ID: JQtJxBgzSFC
--- a/dom/media/gmp/GMPContentChild.cpp
+++ b/dom/media/gmp/GMPContentChild.cpp
@@ -289,24 +289,24 @@ GMPContentChild::RecvPChromiumCDMConstru
void* cdm = nullptr;
// Create version 9 CDM first.
GMPErr err = mGMPChild->GetAPI(CHROMIUM_CDM_API, host9, &cdm);
if (err != GMPNoErr || !cdm) {
// Try to create older version 8 CDM.
cdm::Host_8* host8 = child;
err = mGMPChild->GetAPI(CHROMIUM_CDM_API_BACKWARD_COMPAT, host8, &cdm);
+ if (err != GMPNoErr) {
+ NS_WARNING("GMPGetAPI call failed trying to get CDM.");
+ return IPC_FAIL_NO_REASON(this);
+ }
cdm =
new ChromiumCDM8BackwardsCompat(
host9,
static_cast<cdm::ContentDecryptionModule_8*>(cdm));
- if (err != GMPNoErr) {
- NS_WARNING("GMPGetAPI call failed trying to get CDM.");
- return IPC_FAIL_NO_REASON(this);
- }
}
child->Init(static_cast<cdm::ContentDecryptionModule_9*>(cdm));
return IPC_OK();
}
void