diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 853b2865bb..5957d08a18 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -2001,6 +2001,7 @@ _end: taosMemoryFree(pFuncCtx[i].input.pData); taosMemoryFree(pFuncCtx[i].input.pColumnDataAgg); } + taosMemoryFreeClear(*rowEntryInfoOffset); taosMemoryFreeClear(pFuncCtx); return NULL; } diff --git a/source/libs/executor/src/groupoperator.c b/source/libs/executor/src/groupoperator.c index 706cf50270..d88aef8fb7 100644 --- a/source/libs/executor/src/groupoperator.c +++ b/source/libs/executor/src/groupoperator.c @@ -551,6 +551,10 @@ int32_t createGroupOperatorInfo(SOperatorInfo* downstream, SAggPhysiNode* pAggNo pOperator->exprSupp.hasWindowOrGroup = true; SSDataBlock* pResBlock = createDataBlockFromDescNode(pAggNode->node.pOutputDataBlockDesc); + if (pResBlock == NULL) { + code = terrno; + goto _error; + } initBasicInfo(&pInfo->binfo, pResBlock); int32_t numOfScalarExpr = 0; @@ -602,6 +606,7 @@ _error: if (pInfo != NULL) { destroyGroupOperatorInfo(pInfo); } + destroyOperator(pOperator); taosMemoryFreeClear(pOperator); return code; }