summaryrefslogtreecommitdiff
path: root/arm-wt-22k
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2019-06-17 11:34:28 -0700
committerMarco Nelissen <marcone@google.com>2019-06-17 11:34:28 -0700
commit7dd71801813e0a0df71d500d6bbe7a6432334c9b (patch)
tree0bdecf9fc47d98ad2a7056e5680ffb76e053022f /arm-wt-22k
parent57ae5cf9abb9be87743ea6fff835b9dcb96a83b2 (diff)
downloadsonivox-7dd71801813e0a0df71d500d6bbe7a6432334c9b.tar.gz
Fix potential memory leak
Bug: 135288058 Test: manual Change-Id: Id6e112ae37e95cda789adc5b4a3a13e0fe1e231f
Diffstat (limited to 'arm-wt-22k')
-rw-r--r--arm-wt-22k/lib_src/eas_xmf.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/arm-wt-22k/lib_src/eas_xmf.c b/arm-wt-22k/lib_src/eas_xmf.c
index 07ee8f7..a9fe9bf 100644
--- a/arm-wt-22k/lib_src/eas_xmf.c
+++ b/arm-wt-22k/lib_src/eas_xmf.c
@@ -176,19 +176,26 @@ static EAS_RESULT XMF_CheckFileType (S_EAS_DATA *pEASData, EAS_FILE_HANDLE fileH
pXMFData->fileHandle = fileHandle;
pXMFData->fileOffset = offset;
- *ppHandle = pXMFData;
/* locate the SMF and DLS contents */
if ((result = XMF_FindFileContents(pEASData->hwInstData, pXMFData)) != EAS_SUCCESS)
{
{ /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "No SMF data found in XMF file\n"); */ }
+ EAS_HWFree(pEASData->hwInstData, pXMFData);
return result;
}
/* let the SMF parser take over */
- if ((result = EAS_HWFileSeek(pEASData->hwInstData, fileHandle, pXMFData->midiOffset)) != EAS_SUCCESS)
+ if ((result = EAS_HWFileSeek(pEASData->hwInstData, fileHandle, pXMFData->midiOffset)) != EAS_SUCCESS) {
+ EAS_HWFree(pEASData->hwInstData, pXMFData);
return result;
- return SMF_CheckFileType(pEASData, fileHandle, &pXMFData->pSMFData, pXMFData->midiOffset);
+ }
+ if ((result = SMF_CheckFileType(pEASData, fileHandle, &pXMFData->pSMFData, pXMFData->midiOffset)) != EAS_SUCCESS) {
+ EAS_HWFree(pEASData->hwInstData, pXMFData);
+ return result;
+ }
+ *ppHandle = pXMFData;
+ return EAS_SUCCESS;
}
/*----------------------------------------------------------------------------