Add underflow check in JIT.
This commit is contained in:
parent
b48aa469d6
commit
aae44b83f8
|
@ -146,6 +146,9 @@ compile-time performance improvement).
|
|||
31. Installed a .gitignore file on a user's suggestion. When using the svn
|
||||
repository with git (through git svn) this helps keep it tidy.
|
||||
|
||||
32. Add underflow check in JIT which may occure when the value of subject
|
||||
string pointer is close to 0.
|
||||
|
||||
|
||||
Version 10.33 16-April-2019
|
||||
---------------------------
|
||||
|
|
|
@ -5793,12 +5793,16 @@ if (common->match_end_ptr != 0)
|
|||
{
|
||||
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->match_end_ptr);
|
||||
OP1(SLJIT_MOV, TMP3, 0, STR_END, 0);
|
||||
OP2(SLJIT_SUB, STR_END, 0, STR_END, 0, SLJIT_IMM, IN_UCHARS(max));
|
||||
OP2(SLJIT_SUB | SLJIT_SET_LESS, STR_END, 0, STR_END, 0, SLJIT_IMM, IN_UCHARS(max));
|
||||
add_jump(compiler, &common->failed_match, JUMP(SLJIT_LESS));
|
||||
OP2(SLJIT_SUB | SLJIT_SET_GREATER, SLJIT_UNUSED, 0, STR_END, 0, TMP1, 0);
|
||||
CMOV(SLJIT_GREATER, STR_END, TMP1, 0);
|
||||
}
|
||||
else
|
||||
OP2(SLJIT_SUB, STR_END, 0, STR_END, 0, SLJIT_IMM, IN_UCHARS(max));
|
||||
{
|
||||
OP2(SLJIT_SUB | SLJIT_SET_LESS, STR_END, 0, STR_END, 0, SLJIT_IMM, IN_UCHARS(max));
|
||||
add_jump(compiler, &common->failed_match, JUMP(SLJIT_LESS));
|
||||
}
|
||||
|
||||
SLJIT_ASSERT(range_right >= 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue