From a70137bbb163c7f1a99205ea8bbb8823d63ceec1 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Mon, 30 Mar 2020 11:35:11 +0800 Subject: [PATCH] [TD-71] add additional memory free. --- src/system/detail/src/vnodeRead.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/system/detail/src/vnodeRead.c b/src/system/detail/src/vnodeRead.c index 01528d69d2..9a476e5125 100644 --- a/src/system/detail/src/vnodeRead.c +++ b/src/system/detail/src/vnodeRead.c @@ -652,8 +652,16 @@ void *vnodeQueryOnSingleTable(SMeterObj **pMetersObj, SSqlGroupbyExpr *pGroupbyE pSupporter->numOfMeters = 1; pSupporter->pMetersHashTable = taosInitHashTable(pSupporter->numOfMeters, taosIntHash_32, false); - taosAddToHashTable(pSupporter->pMetersHashTable, (const char*) &pMetersObj[0]->sid, sizeof(pMeterObj[0].sid), - (char *)&pMetersObj[0], POINTER_BYTES); + if (pSupporter->pMetersHashTable == NULL) { + free(pSupporter); + goto _error; + } + if (taosAddToHashTable(pSupporter->pMetersHashTable, (const char*) &pMetersObj[0]->sid, sizeof(pMeterObj[0].sid), + (char *)&pMetersObj[0], POINTER_BYTES) != 0) { + taosCleanUpHashTable(pSupporter->pMetersHashTable); + free(pSupporter); + goto _error; + } pSupporter->pSidSet = NULL; pSupporter->subgroupIdx = -1; @@ -671,6 +679,8 @@ void *vnodeQueryOnSingleTable(SMeterObj **pMetersObj, SSqlGroupbyExpr *pGroupbyE } if (((*code) = vnodeQueryTablePrepare(pQInfo, pQInfo->pObj, pSupporter, pTSBuf)) != TSDB_CODE_SUCCESS) { + taosDeleteFromHashTable(pSupporter->pMetersHashTable, (const char*) &pMetersObj[i]->sid, sizeof(pMetersObj[i]->sid)); + taosCleanUpHashTable(pSupporter->pMetersHashTable); free(pSupporter); goto _error; } -- GitLab