ref: 6d7bd2daf4a49762fd24cdd37d56a7a36dc19542
parent: 91fa9fad638e2e28aebc55d500e9f5f98c446dd0
author: Haibo Zhu <haibozhu@cisco.com>
date: Mon Jan 18 10:48:05 EST 2016
Add protection for wrong API call without initialize
--- a/codec/decoder/plus/src/welsDecoderExt.cpp
+++ b/codec/decoder/plus/src/welsDecoderExt.cpp
@@ -444,6 +444,13 @@
const int kiSrcLen,
unsigned char** ppDst,
SBufferInfo* pDstInfo) {
+ if (m_pDecContext == NULL || m_pDecContext->pParam == NULL) {
+ if (m_pWelsTrace != NULL) {
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, "Call DecodeFrame2 without Initialize.\n");
+ }
+ return dsInitialOptExpected;
+ }
+
if (m_pDecContext->pParam->bParseOnly) {
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, "bParseOnly should be false for this API calling! \n");
m_pDecContext->iErrorCode |= dsInvalidArgument;
@@ -589,6 +596,13 @@
DECODING_STATE CWelsDecoder::DecodeParser (const unsigned char* kpSrc,
const int kiSrcLen,
SParserBsInfo* pDstInfo) {
+ if (m_pDecContext == NULL || m_pDecContext->pParam == NULL) {
+ if (m_pWelsTrace != NULL) {
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, "Call DecodeParser without Initialize.\n");
+ }
+ return dsInitialOptExpected;
+ }
+
if (!m_pDecContext->pParam->bParseOnly) {
WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_ERROR, "bParseOnly should be true for this API calling! \n");
m_pDecContext->iErrorCode |= dsInvalidArgument;