From 1319066e0e560c7f3527bef6739dc49e153e6dbd Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 28 Aug 2023 10:05:54 +0800 Subject: [PATCH] fix:memory leak --- source/libs/scalar/src/filter.c | 6 ++++-- utils/test/c/varbinary_test.c | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/libs/scalar/src/filter.c b/source/libs/scalar/src/filter.c index 6cc235bd06..12729c3262 100644 --- a/source/libs/scalar/src/filter.c +++ b/source/libs/scalar/src/filter.c @@ -1990,6 +1990,8 @@ int32_t fltInitValFieldData(SFilterInfo *info) { // todo refactor the convert int32_t code = sclConvertValueToSclParam(var, &out, NULL); if (code != TSDB_CODE_SUCCESS) { + colDataDestroy(out.columnData); + taosMemoryFree(out.columnData); qError("convert value to type[%d] failed", type); return code; } @@ -4678,10 +4680,10 @@ int32_t filterExecute(SFilterInfo *info, SSDataBlock *pSrc, SColumnInfoData **p, code = scalarCalculate(info->sclCtx.node, pList, &output); taosArrayDestroy(pList); - FLT_ERR_RET(code); - *p = output.columnData; + FLT_ERR_RET(code); + if (output.numOfQualified == output.numOfRows) { *pResultStatus = FILTER_RESULT_ALL_QUALIFIED; } else if (output.numOfQualified == 0) { diff --git a/utils/test/c/varbinary_test.c b/utils/test/c/varbinary_test.c index b2fccee63b..74c50d66d9 100644 --- a/utils/test/c/varbinary_test.c +++ b/utils/test/c/varbinary_test.c @@ -68,6 +68,7 @@ int varbinary_test() { } rowIndex++; } + taos_free_result(pRes); pRes = taos_query(taos, "insert into tb1 using stb tags (1, 'tb1_bin1', 'vart1') values (now, 'nchar1', 'varc1', 0.3)"); taos_free_result(pRes);