Bug 1410689 - Early return before creating ChromiumCDM8BackwardsCompat to avoid leak. r?gerald draft
authorJames Cheng <jacheng@mozilla.com>
Mon, 23 Oct 2017 11:29:58 +0800
changeset 684550 731451b6dcfab41847fa57f9a2218cafdeab6f62
parent 684549 49313cb91796c9cc3635bbf292700ec1a4523a8b
child 736884 ea57473acf6c0fdc520e546d82f25269e9abdb38
push id85638
push userbmo:jacheng@mozilla.com
push dateMon, 23 Oct 2017 03:30:22 +0000
reviewersgerald
bugs1410689
milestone58.0a1
Bug 1410689 - Early return before creating ChromiumCDM8BackwardsCompat to avoid leak. r?gerald MozReview-Commit-ID: JQtJxBgzSFC
dom/media/gmp/GMPContentChild.cpp
--- 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