fixed svace isues
[platform/adaptation/ap_samsung/libomxil-e3250-v4l2.git] / openmax / component / video / enc / mpeg4 / Exynos_OMX_Mpeg4enc.c
index d775ad4..a94fea4 100755 (executable)
@@ -1157,6 +1157,11 @@ OMX_ERRORTYPE Mpeg4CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
 
                 pVideoEnc->pMFCEncOutputBuffer[i] = (CODEC_ENC_BUFFER *)Exynos_OSAL_Malloc(sizeof(CODEC_ENC_BUFFER));
 
+                if (!pVideoEnc->pMFCEncOutputBuffer[i]) {
+                    ret = OMX_ErrorInsufficientResources;
+                    goto ALLOC_FAILED;
+                }
+
                 if (pOutbufOps->Get_Buffer) {
                      if (pOutbufOps->Get_Buffer(pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle, i, &pBuffer) != VIDEO_ERROR_NONE) {
                          Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to get Output buffer info");
@@ -1209,6 +1214,16 @@ EXIT:
     FunctionOut();
 
     return ret;
+
+ALLOC_FAILED:
+    for (i = 0; i < MFC_OUTPUT_BUFFER_NUM_MAX; i++) {
+        if (pVideoEnc->pMFCEncOutputBuffer[i])
+            Exynos_OSAL_Free(pVideoEnc->pMFCEncOutputBuffer[i]);
+    }
+    Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate buffers");
+
+    FunctionOut();
+    return ret;
 }
 
 OMX_ERRORTYPE Exynos_Mpeg4Enc_GetParameter(