fix: json tag length check
This commit is contained in:
parent
b02ad5c8e2
commit
fb34549ae7
|
@ -3569,11 +3569,18 @@ int32_t blockDataCheck(const SSDataBlock* pDataBlock) {
|
||||||
} else {
|
} else {
|
||||||
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset[r] == nextPos);
|
BLOCK_DATA_CHECK_TRESSA(pCol->varmeta.offset[r] == nextPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
colLen = varDataTLen(pCol->pData + pCol->varmeta.offset[r]);
|
char* pColData = pCol->pData + pCol->varmeta.offset[r];
|
||||||
|
int32_t colSize = 0;
|
||||||
|
if (pCol->info.type == TSDB_DATA_TYPE_JSON) {
|
||||||
|
colLen = getJsonValueLen(pColData);
|
||||||
|
} else {
|
||||||
|
colLen = varDataTLen(pColData);
|
||||||
|
}
|
||||||
|
|
||||||
BLOCK_DATA_CHECK_TRESSA(colLen >= VARSTR_HEADER_SIZE);
|
BLOCK_DATA_CHECK_TRESSA(colLen >= VARSTR_HEADER_SIZE);
|
||||||
BLOCK_DATA_CHECK_TRESSA(colLen <= pCol->info.bytes);
|
BLOCK_DATA_CHECK_TRESSA(colLen <= pCol->info.bytes);
|
||||||
|
|
||||||
if (pCol->reassigned) {
|
if (pCol->reassigned) {
|
||||||
BLOCK_DATA_CHECK_TRESSA((pCol->varmeta.offset[r] + colLen) <= pCol->varmeta.length);
|
BLOCK_DATA_CHECK_TRESSA((pCol->varmeta.offset[r] + colLen) <= pCol->varmeta.length);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1606,7 +1606,7 @@ static int32_t translateOutVarchar(SFunctionNode* pFunc, char* pErrBuf, int32_t
|
||||||
break;
|
break;
|
||||||
case FUNCTION_TYPE_BLOCK_DIST:
|
case FUNCTION_TYPE_BLOCK_DIST:
|
||||||
case FUNCTION_TYPE_BLOCK_DIST_INFO:
|
case FUNCTION_TYPE_BLOCK_DIST_INFO:
|
||||||
bytes = 128;
|
bytes = sizeof(STableBlockDistInfo);
|
||||||
break;
|
break;
|
||||||
case FUNCTION_TYPE_TO_CHAR:
|
case FUNCTION_TYPE_TO_CHAR:
|
||||||
bytes = 4096;
|
bytes = 4096;
|
||||||
|
|
Loading…
Reference in New Issue