From c04ade786741b6d746e07a8e3132e9575010081a Mon Sep 17 00:00:00 2001 From: Ganlin Zhao Date: Mon, 24 Oct 2022 14:16:17 +0800 Subject: [PATCH] fix: coverity issues CID: 400109 --- source/libs/scalar/src/scalar.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/source/libs/scalar/src/scalar.c b/source/libs/scalar/src/scalar.c index 26adad27bc..37949d0ff0 100644 --- a/source/libs/scalar/src/scalar.c +++ b/source/libs/scalar/src/scalar.c @@ -1488,8 +1488,13 @@ static int32_t sclGetMinusOperatorResType(SOperatorNode *pOp) { } static int32_t sclGetMathOperatorResType(SOperatorNode *pOp) { + if (pOp == NULL || pOp->pLeft == NULL || pOp->pRight == NULL) { + return TSDB_CODE_TSC_INVALID_OPERATION; + } + SDataType ldt = ((SExprNode *)(pOp->pLeft))->resType; SDataType rdt = ((SExprNode *)(pOp->pRight))->resType; + if ((TSDB_DATA_TYPE_TIMESTAMP == ldt.type && TSDB_DATA_TYPE_TIMESTAMP == rdt.type) || (TSDB_DATA_TYPE_TIMESTAMP == ldt.type && (IS_VAR_DATA_TYPE(rdt.type) || IS_FLOAT_TYPE(rdt.type))) || (TSDB_DATA_TYPE_TIMESTAMP == rdt.type && (IS_VAR_DATA_TYPE(ldt.type) || IS_FLOAT_TYPE(ldt.type)))) { @@ -1510,7 +1515,12 @@ static int32_t sclGetMathOperatorResType(SOperatorNode *pOp) { } static int32_t sclGetCompOperatorResType(SOperatorNode *pOp) { + if (pOp == NULL || pOp->pLeft == NULL || pOp->pRight == NULL) { + return TSDB_CODE_TSC_INVALID_OPERATION; + } + SDataType ldt = ((SExprNode *)(pOp->pLeft))->resType; + if (OP_TYPE_IN == pOp->opType || OP_TYPE_NOT_IN == pOp->opType) { ((SExprNode *)(pOp->pRight))->resType = ldt; } else if (nodesIsRegularOp(pOp)) { @@ -1526,8 +1536,13 @@ static int32_t sclGetCompOperatorResType(SOperatorNode *pOp) { } static int32_t sclGetJsonOperatorResType(SOperatorNode *pOp) { + if (pOp == NULL || pOp->pLeft == NULL || pOp->pRight == NULL) { + return TSDB_CODE_TSC_INVALID_OPERATION; + } + SDataType ldt = ((SExprNode *)(pOp->pLeft))->resType; SDataType rdt = ((SExprNode *)(pOp->pRight))->resType; + if (TSDB_DATA_TYPE_JSON != ldt.type || !IS_STR_DATA_TYPE(rdt.type)) { return TSDB_CODE_TSC_INVALID_OPERATION; } -- GitLab