diff --git a/source/libs/executor/src/exchangeoperator.c b/source/libs/executor/src/exchangeoperator.c index 5afae596a4..bdc1e42b28 100644 --- a/source/libs/executor/src/exchangeoperator.c +++ b/source/libs/executor/src/exchangeoperator.c @@ -485,6 +485,9 @@ void freeSourceDataInfo(void* p) { } void doDestroyExchangeOperatorInfo(void* param) { + if (param == NULL) { + return; + } SExchangeInfo* pExInfo = (SExchangeInfo*)param; if (pExInfo->pFetchRpcHandles) { for (int32_t i = 0; i < pExInfo->pFetchRpcHandles->size; ++i) { diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index afca6bd185..d352fa742f 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -3806,6 +3806,9 @@ _end: } static void destroyStreamScanOperatorInfo(void* param) { + if (param == NULL) { + return; + } SStreamScanInfo* pStreamScan = (SStreamScanInfo*)param; if (pStreamScan->pTableScanOp && pStreamScan->pTableScanOp->info) { diff --git a/source/libs/executor/src/streameventwindowoperator.c b/source/libs/executor/src/streameventwindowoperator.c index bde6198709..93f30ea899 100644 --- a/source/libs/executor/src/streameventwindowoperator.c +++ b/source/libs/executor/src/streameventwindowoperator.c @@ -43,6 +43,9 @@ typedef struct SEventWindowInfo { } SEventWindowInfo; void destroyStreamEventOperatorInfo(void* param) { + if (param == NULL) { + return; + } SStreamEventAggOperatorInfo* pInfo = (SStreamEventAggOperatorInfo*)param; cleanupBasicInfo(&pInfo->binfo); destroyStreamAggSupporter(&pInfo->streamAggSup); diff --git a/source/libs/executor/src/streamtimewindowoperator.c b/source/libs/executor/src/streamtimewindowoperator.c index 61d4eed156..cf3b53bf02 100644 --- a/source/libs/executor/src/streamtimewindowoperator.c +++ b/source/libs/executor/src/streamtimewindowoperator.c @@ -454,6 +454,9 @@ void clearGroupResInfo(SGroupResInfo* pGroupResInfo) { } void destroyStreamFinalIntervalOperatorInfo(void* param) { + if (param == NULL) { + return; + } SStreamIntervalOperatorInfo* pInfo = (SStreamIntervalOperatorInfo*)param; cleanupBasicInfo(&pInfo->binfo); cleanupAggSup(&pInfo->aggSup); @@ -2031,6 +2034,9 @@ void destroyStreamAggSupporter(SStreamAggSupporter* pSup) { } void destroyStreamSessionAggOperatorInfo(void* param) { + if (param == NULL) { + return; + } SStreamSessionAggOperatorInfo* pInfo = (SStreamSessionAggOperatorInfo*)param; cleanupBasicInfo(&pInfo->binfo); destroyStreamAggSupporter(&pInfo->streamAggSup); @@ -4106,6 +4112,9 @@ _error: } void destroyStreamStateOperatorInfo(void* param) { + if (param == NULL) { + return; + } SStreamStateAggOperatorInfo* pInfo = (SStreamStateAggOperatorInfo*)param; cleanupBasicInfo(&pInfo->binfo); destroyStreamAggSupporter(&pInfo->streamAggSup); diff --git a/source/libs/executor/src/sysscanoperator.c b/source/libs/executor/src/sysscanoperator.c index e11ee6b0dc..45ff4e5f88 100644 --- a/source/libs/executor/src/sysscanoperator.c +++ b/source/libs/executor/src/sysscanoperator.c @@ -552,6 +552,8 @@ static SSDataBlock* sysTableScanUserCols(SOperatorInfo* pOperator) { blockDataCleanup(pInfo->pRes); pDataBlock = buildInfoSchemaTableMetaBlock(TSDB_INS_TABLE_COLS); + QUERY_CHECK_NULL(pDataBlock, code, lino, _end, terrno); + code = blockDataEnsureCapacity(pDataBlock, pOperator->resultInfo.capacity); QUERY_CHECK_CODE(code, lino, _end); @@ -708,6 +710,8 @@ static SSDataBlock* sysTableScanUserTags(SOperatorInfo* pOperator) { int32_t numOfRows = 0; dataBlock = buildInfoSchemaTableMetaBlock(TSDB_INS_TABLE_TAGS); + QUERY_CHECK_NULL(dataBlock, code, lino, _end, terrno); + code = blockDataEnsureCapacity(dataBlock, pOperator->resultInfo.capacity); QUERY_CHECK_CODE(code, lino, _end); @@ -1354,6 +1358,8 @@ static SSDataBlock* sysTableBuildUserTablesByUids(SOperatorInfo* pOperator) { varDataSetLen(dbname, strlen(varDataVal(dbname))); p = buildInfoSchemaTableMetaBlock(TSDB_INS_TABLE_TABLES); + QUERY_CHECK_NULL(p, code, lino, _end, terrno); + code = blockDataEnsureCapacity(p, pOperator->resultInfo.capacity); QUERY_CHECK_CODE(code, lino, _end); diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index ca6b89f7c5..5e5d6494cf 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -1208,6 +1208,9 @@ static void freeItem(void* param) { } void destroyIntervalOperatorInfo(void* param) { + if (param == NULL) { + return; + } SIntervalAggOperatorInfo* pInfo = (SIntervalAggOperatorInfo*)param; cleanupBasicInfo(&pInfo->binfo); cleanupAggSup(&pInfo->aggSup);