diff --git a/src/util/src/tcompare.c b/src/util/src/tcompare.c index 1043ee4c37..ee367b459c 100644 --- a/src/util/src/tcompare.c +++ b/src/util/src/tcompare.c @@ -156,14 +156,16 @@ int32_t compareLenPrefixedWStr(const void *pLeft, const void *pRight) { if (len1 != len2) { return len1 > len2? 1:-1; } else { - char pLeftTerm[len1 + 1]; - char pRightTerm[len2 + 1]; - memset(pLeftTerm, 0, len1 + 1); - memset(pRightTerm, 0, len2 + 1); + char *pLeftTerm = (char *)tcalloc(len1 + 1, sizeof(char)); + char *pRightTerm = (char *)tcalloc(len1 + 1, sizeof(char)); memcpy(pLeftTerm, varDataVal(pLeft), len1); memcpy(pRightTerm, varDataVal(pRight), len2); int32_t ret = wcsncmp((void *)pLeftTerm, (void *)pRightTerm, len1/TSDB_NCHAR_SIZE); + + tfree(pLeftTerm); + tfree(pRightTerm); + if (ret == 0) { return 0; } else {