diff --git a/source/common/src/tdatablock.c b/source/common/src/tdatablock.c index c9314318ee..d0bae5d6a7 100644 --- a/source/common/src/tdatablock.c +++ b/source/common/src/tdatablock.c @@ -973,6 +973,9 @@ int32_t blockDataToBuf(char* buf, const SSDataBlock* pBlock) { int32_t blockDataFromBuf(SSDataBlock* pBlock, const char* buf) { int32_t numOfRows = *(int32_t*)buf; + if (numOfRows == 0) { + return TSDB_CODE_QRY_EXECUTOR_INTERNAL_ERROR; + } int32_t code = blockDataEnsureCapacity(pBlock, numOfRows); if (code) { return code; diff --git a/source/libs/executor/src/sortoperator.c b/source/libs/executor/src/sortoperator.c index e23988d357..d9b1e40510 100644 --- a/source/libs/executor/src/sortoperator.c +++ b/source/libs/executor/src/sortoperator.c @@ -295,6 +295,9 @@ static int32_t getSortedBlockData(SSortHandle* pHandle, SSDataBlock* pDataBlock, break; } } + if (TSDB_CODE_SUCCESS != code) { + return code; + } if (p->info.rows > 0) { code = blockDataEnsureCapacity(pDataBlock, capacity);