fix:[TD-32137] Avoid double free when error occurs.
This commit is contained in:
parent
eb32a41c29
commit
5096f8008a
|
@ -2866,32 +2866,35 @@ _return:
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t filterConvertGroupFromArray(SFilterInfo *info, SArray *group) {
|
int32_t filterConvertGroupFromArray(SFilterInfo *info, SArray *group) {
|
||||||
size_t groupSize = taosArrayGetSize(group);
|
size_t groupSize = taosArrayGetSize(group);
|
||||||
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
info->groupNum = (uint32_t)groupSize;
|
info->groupNum = (uint32_t)groupSize;
|
||||||
|
|
||||||
if (info->groupNum > 0) {
|
if (info->groupNum > 0) {
|
||||||
info->groups = taosMemoryCalloc(info->groupNum, sizeof(*info->groups));
|
info->groups = taosMemoryCalloc(info->groupNum, sizeof(*info->groups));
|
||||||
if (info->groups == NULL) {
|
if (info->groups == NULL) {
|
||||||
info->groupNum = 0;
|
FLT_ERR_JRET(terrno);
|
||||||
FLT_ERR_RET(terrno);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < groupSize; ++i) {
|
for (size_t i = 0; i < groupSize; ++i) {
|
||||||
SFilterGroup *pg = taosArrayGet(group, i);
|
SFilterGroup *pg = taosArrayGet(group, i);
|
||||||
if (NULL == pg) {
|
if (NULL == pg) {
|
||||||
FLT_ERR_RET(TSDB_CODE_OUT_OF_RANGE);
|
FLT_ERR_JRET(TSDB_CODE_OUT_OF_RANGE);
|
||||||
}
|
}
|
||||||
pg->unitFlags = taosMemoryCalloc(pg->unitNum, sizeof(*pg->unitFlags));
|
pg->unitFlags = taosMemoryCalloc(pg->unitNum, sizeof(*pg->unitFlags));
|
||||||
if (pg->unitFlags == NULL) {
|
if (pg->unitFlags == NULL) {
|
||||||
pg->unitNum = 0;
|
pg->unitNum = 0;
|
||||||
FLT_ERR_RET(terrno);
|
FLT_ERR_JRET(terrno);
|
||||||
}
|
}
|
||||||
info->groups[i] = *pg;
|
info->groups[i] = *pg;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
|
_return:
|
||||||
|
info->groupNum = 0;
|
||||||
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t filterRewrite(SFilterInfo *info, SFilterGroupCtx **gRes, int32_t gResNum) {
|
int32_t filterRewrite(SFilterInfo *info, SFilterGroupCtx **gRes, int32_t gResNum) {
|
||||||
|
|
Loading…
Reference in New Issue