diff --git a/source/util/src/tcompare.c b/source/util/src/tcompare.c index fe3065b2b7..01cdee9829 100644 --- a/source/util/src/tcompare.c +++ b/source/util/src/tcompare.c @@ -186,15 +186,12 @@ int32_t compareLenPrefixedStr(const void *pLeft, const void *pRight) { int32_t len1 = varDataLen(pLeft); int32_t len2 = varDataLen(pRight); - if (len1 != len2) { + int32_t minLen = MIN(len1, len2); + int32_t ret = strncmp(varDataVal(pLeft), varDataVal(pRight), minLen); + if (ret == 0) { return len1 > len2 ? 1 : -1; } else { - int32_t ret = strncmp(varDataVal(pLeft), varDataVal(pRight), len1); - if (ret == 0) { - return 0; - } else { - return ret > 0 ? 1 : -1; - } + return ret > 0 ? 1 : -1; } }