diff --git a/src/query/src/qFilter.c b/src/query/src/qFilter.c index d67cec9288fcc82c971793b3236c5f3cf0ed82e6..098bf1b0820d9ba04d56bb69fc0011ffd285da94 100644 --- a/src/query/src/qFilter.c +++ b/src/query/src/qFilter.c @@ -1037,6 +1037,12 @@ int32_t filterConvertSetFromBinary(void **q, const char *buf, int32_t len, uint3 switch (tType) { case TSDB_DATA_TYPE_BOOL: + if (sType != TSDB_DATA_TYPE_BOOL && !IS_SIGNED_NUMERIC_TYPE(sType)) { + goto _return; + } + if (tmpVar.i64 > 1 ||tmpVar.i64 < 0) { + goto _return; + } case TSDB_DATA_TYPE_UTINYINT: case TSDB_DATA_TYPE_TINYINT: { if (tVariantDumpEx(&tmpVar, (char *)&val, tType, false, &converted, &extInfo)) {