diff --git a/source/common/src/tdataformat.c b/source/common/src/tdataformat.c index f05f7dc3f9..e04ba1515f 100644 --- a/source/common/src/tdataformat.c +++ b/source/common/src/tdataformat.c @@ -1557,11 +1557,13 @@ STSchema *tBuildTSchema(SSchema *aSchema, int32_t numOfCols, int32_t version) { // SColData ======================================== void tColDataDestroy(void *ph) { - SColData *pColData = (SColData *)ph; + if (ph) { + SColData *pColData = (SColData *)ph; - tFree(pColData->pBitMap); - tFree(pColData->aOffset); - tFree(pColData->pData); + tFree(pColData->pBitMap); + tFree(pColData->aOffset); + tFree(pColData->pData); + } } void tColDataInit(SColData *pColData, int16_t cid, int8_t type, int8_t smaOn) { diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index d1cb3e2005..15109f8efc 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -3100,7 +3100,7 @@ int32_t tsdbCacheGetBlockS3(SLRUCache *pCache, STsdbFD *pFD, LRUHandle **handle) taosThreadMutexUnlock(&pTsdb->bMutex); *handle = NULL; - if (!pBlock) { + if (code == TSDB_CODE_SUCCESS && !pBlock) { code = TSDB_CODE_OUT_OF_MEMORY; } return code; diff --git a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c index 4a37ff3ad2..c1faf01c9e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c @@ -172,10 +172,10 @@ static int32_t tsdbReadFilePage(STsdbFD *pFD, int64_t pgno) { LRUHandle *handle = NULL; pFD->blkno = (pgno + tsS3BlockSize - 1) / tsS3BlockSize; - int32_t code = tsdbCacheGetBlockS3(pFD->pTsdb->bCache, pFD, &handle); + code = tsdbCacheGetBlockS3(pFD->pTsdb->bCache, pFD, &handle); if (code != TSDB_CODE_SUCCESS || handle == NULL) { tsdbBCacheRelease(pFD->pTsdb->bCache, handle); - if (!handle) { + if (code == TSDB_CODE_SUCCESS && !handle) { code = TSDB_CODE_OUT_OF_MEMORY; } goto _exit;