From 0db26f2f9631f5d73695f02c0390172d17624384 Mon Sep 17 00:00:00 2001 From: Ganlin Zhao Date: Wed, 20 Apr 2022 14:27:19 +0800 Subject: [PATCH] fix(query): substr function param overflow TD-14760 --- source/libs/scalar/src/sclfunc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/scalar/src/sclfunc.c b/source/libs/scalar/src/sclfunc.c index d696e7074f..c49b053c22 100644 --- a/source/libs/scalar/src/sclfunc.c +++ b/source/libs/scalar/src/sclfunc.c @@ -600,7 +600,7 @@ int32_t substrFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOu int32_t subLen = INT16_MAX; if (inputNum == 3) { GET_TYPED_DATA(subLen, int32_t, GET_PARAM_TYPE(&pInput[2]), pInput[2].columnData->pData); - if (subLen < 0) { //subLen cannot be negative + if (subLen < 0 || subLen > INT16_MAX) { //subLen cannot be negative return TSDB_CODE_FAILED; } subLen = (GET_PARAM_TYPE(pInput) == TSDB_DATA_TYPE_VARCHAR) ? subLen : subLen * TSDB_NCHAR_SIZE;