fix parser bug abort uint64
This commit is contained in:
@ -4813,6 +4813,15 @@ string_length_i:
|
|||||||
} else {
|
} else {
|
||||||
$$[0] = val;
|
$$[0] = val;
|
||||||
}
|
}
|
||||||
|
} else if (T_UINT64 == $2->type_) {
|
||||||
|
uint64_t value = $2->value_;
|
||||||
|
if (value > UINT32_MAX) {
|
||||||
|
$$[0] = OUT_OF_STR_LEN;;
|
||||||
|
} else if (value > INT32_MAX) {
|
||||||
|
$$[0] = DEFAULT_STR_LENGTH;
|
||||||
|
} else {
|
||||||
|
$$[0] = $2->value_;
|
||||||
|
}
|
||||||
} else if ($2->value_ < 0) {
|
} else if ($2->value_ < 0) {
|
||||||
yyerror(&@2, result, "length cannot < 0\n");
|
yyerror(&@2, result, "length cannot < 0\n");
|
||||||
YYABORT_UNEXPECTED;
|
YYABORT_UNEXPECTED;
|
||||||
|
|||||||
Reference in New Issue
Block a user