From 07478a67cb9e291e60be3dea8eb70b716568ba1f Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Thu, 11 Dec 2014 19:25:21 -0800 Subject: [PATCH] Ensure terminate is called in all error cases bug: 18203007 Change-Id: I0d74b348982992075ec126a324dabbff8fab9125 --- proprietary/wvm/WVMExtractorImpl.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/proprietary/wvm/WVMExtractorImpl.cpp b/proprietary/wvm/WVMExtractorImpl.cpp index af77d037..0ec860e2 100644 --- a/proprietary/wvm/WVMExtractorImpl.cpp +++ b/proprietary/wvm/WVMExtractorImpl.cpp @@ -204,17 +204,17 @@ void WVMExtractorImpl::Initialize() if (mSetupStatus != OK) { setError(mSetupStatus); -#ifdef REQUIRE_SECURE_BUFFERS - if (mCryptoInitialized) { - OEMCrypto_Terminate(); - } -#endif } WV_SetWarningToErrorMS(10000); } WVMExtractorImpl::~WVMExtractorImpl() { +#ifdef REQUIRE_SECURE_BUFFERS + if (mCryptoInitialized) { + OEMCrypto_Terminate(); + } +#endif } // Release decrypt handle when media sources are destroyed @@ -383,6 +383,9 @@ status_t WVMExtractorImpl::readMetaData() mVideoSource = new WVMMediaSource(mSession, WV_EsSelector_Video, videoMetaData, mIsLiveStream, cryptoPluginMode, mCryptoInitialized); + // responsibility for terminating has been delegated to WVMMediaSource + mCryptoInitialized = false; + // Since the WVExtractor goes away soon after this, we delegate ownership of some resources // to the constructed media source if (mFileSource.get()) {