Fix minor oversight in previous patch. Fixes clusterfuzz 15199.
This commit is contained in:
parent
306f2b9c57
commit
f0c06ee212
|
@ -2448,7 +2448,7 @@ must be last. */
|
||||||
enum { RANGE_NO, RANGE_STARTED, RANGE_OK_ESCAPED, RANGE_OK_LITERAL };
|
enum { RANGE_NO, RANGE_STARTED, RANGE_OK_ESCAPED, RANGE_OK_LITERAL };
|
||||||
|
|
||||||
/* Only in 32-bit mode can there be literals > META_END. A macro encapsulates
|
/* Only in 32-bit mode can there be literals > META_END. A macro encapsulates
|
||||||
the storing of literal values in the main parsed pattern, where they can always
|
the storing of literal values in the main parsed pattern, where they can always
|
||||||
be quantified. */
|
be quantified. */
|
||||||
|
|
||||||
#if PCRE2_CODE_UNIT_WIDTH == 32
|
#if PCRE2_CODE_UNIT_WIDTH == 32
|
||||||
|
@ -2642,10 +2642,10 @@ while (ptr < ptrend)
|
||||||
default: /* Don't use PARSED_LITERAL() because it */
|
default: /* Don't use PARSED_LITERAL() because it */
|
||||||
#if PCRE2_CODE_UNIT_WIDTH == 32 /* sets okquantifier. */
|
#if PCRE2_CODE_UNIT_WIDTH == 32 /* sets okquantifier. */
|
||||||
if (c >= META_END) *parsed_pattern++ = META_BIGVALUE;
|
if (c >= META_END) *parsed_pattern++ = META_BIGVALUE;
|
||||||
#endif
|
#endif
|
||||||
*parsed_pattern++ = c;
|
*parsed_pattern++ = c;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHAR_RIGHT_PARENTHESIS:
|
case CHAR_RIGHT_PARENTHESIS:
|
||||||
inverbname = FALSE;
|
inverbname = FALSE;
|
||||||
/* This is the length in characters */
|
/* This is the length in characters */
|
||||||
|
@ -2681,8 +2681,11 @@ while (ptr < ptrend)
|
||||||
|
|
||||||
switch(escape)
|
switch(escape)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0: /* Don't use PARSED_LITERAL() because it */
|
||||||
PARSED_LITERAL(c, parsed_pattern);
|
#if PCRE2_CODE_UNIT_WIDTH == 32 /* sets okquantifier. */
|
||||||
|
if (c >= META_END) *parsed_pattern++ = META_BIGVALUE;
|
||||||
|
#endif
|
||||||
|
*parsed_pattern++ = c;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ESC_Q:
|
case ESC_Q:
|
||||||
|
@ -3793,7 +3796,7 @@ while (ptr < ptrend)
|
||||||
|
|
||||||
/* Remember where this verb, possibly with a preceding (*MARK), starts,
|
/* Remember where this verb, possibly with a preceding (*MARK), starts,
|
||||||
for handling quantified (*ACCEPT). */
|
for handling quantified (*ACCEPT). */
|
||||||
|
|
||||||
verbstartptr = parsed_pattern;
|
verbstartptr = parsed_pattern;
|
||||||
okquantifier = (verbs[i].meta == META_ACCEPT);
|
okquantifier = (verbs[i].meta == META_ACCEPT);
|
||||||
|
|
||||||
|
|
|
@ -5603,4 +5603,6 @@ a)"xI
|
||||||
abc
|
abc
|
||||||
axy
|
axy
|
||||||
|
|
||||||
|
/(*:\)?/
|
||||||
|
|
||||||
# End of testinput2
|
# End of testinput2
|
||||||
|
|
|
@ -16959,6 +16959,9 @@ Failed: error 197 at offset 131075: too many capturing groups (maximum 65535)
|
||||||
0: a
|
0: a
|
||||||
MK: XX
|
MK: XX
|
||||||
|
|
||||||
|
/(*:\)?/
|
||||||
|
Failed: error 109 at offset 5: quantifier does not follow a repeatable item
|
||||||
|
|
||||||
# End of testinput2
|
# End of testinput2
|
||||||
Error -70: PCRE2_ERROR_BADDATA (unknown error number)
|
Error -70: PCRE2_ERROR_BADDATA (unknown error number)
|
||||||
Error -62: bad serialized data
|
Error -62: bad serialized data
|
||||||
|
|
Loading…
Reference in New Issue