Apply pcre2 svn rev 489 patch to fix CVE-2016-3191

This commit is contained in:
Aaron Gyes 2016-04-16 01:02:58 -07:00 committed by David Adam
parent aefcf544ca
commit fc78e70d08

View file

@ -4866,7 +4866,6 @@ for (;; ptr++)
/* For a single, positive character, get the value into mcbuffer, and
then we can handle this with the normal one-character code. */
mclength = PUTCHAR(c, mcbuffer);
goto ONE_CHAR;
} /* End of 1-char optimization */
@ -5899,11 +5898,22 @@ for (;; ptr++)
goto FAILED;
}
cb->had_accept = TRUE;
/* In the first pass, just accumulate the length required;
otherwise hitting (*ACCEPT) inside many nested parentheses can
cause workspace overflow. */
for (oc = cb->open_caps; oc != NULL; oc = oc->next)
{
*code++ = OP_CLOSE;
PUT2INC(code, 0, oc->number);
if (lengthptr != NULL)
{
*lengthptr += CU2BYTES(1) + IMM2_SIZE;
}
else
{
*code++ = OP_CLOSE;
PUT2INC(code, 0, oc->number);
}
}
setverb = *code++ =
(cb->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT;