Mend bug introduced in previous patch. Fixes crash detected by ClusterFuzz
17101.
This commit is contained in:
parent
bf15267c30
commit
78fae97f6c
|
@ -5594,10 +5594,18 @@ for (;; pptr++)
|
|||
if (UCD_CASESET(c) == 0)
|
||||
#endif
|
||||
{
|
||||
uint32_t d = TABLE_GET(c, cb->fcc, c);
|
||||
uint32_t d;
|
||||
|
||||
#ifdef SUPPORT_UNICODE
|
||||
if (utf && c > 127) d = UCD_OTHERCASE(c);
|
||||
if (utf && c > 127) d = UCD_OTHERCASE(c); else
|
||||
#endif
|
||||
{
|
||||
#if PCRE2_CODE_UNIT_WIDTH != 8
|
||||
if (c > 255) d = c; else
|
||||
#endif
|
||||
d = TABLE_GET(c, cb->fcc, c);
|
||||
}
|
||||
|
||||
if (c != d && pptr[2] == d)
|
||||
{
|
||||
pptr += 3; /* Move on to class end */
|
||||
|
|
|
@ -205,19 +205,19 @@ whether its argument, which is assumed to be one code unit, is less than 256.
|
|||
The CHMAX_255 macro does not assume one code unit. The maximum length of a MARK
|
||||
name must fit in one code unit; currently it is set to 255 or 65535. The
|
||||
TABLE_GET macro is used to access elements of tables containing exactly 256
|
||||
items. When code points can be greater than 255, a check is needed before
|
||||
accessing these tables. */
|
||||
items. Its argument is a code unit. When code points can be greater than 255, a
|
||||
check is needed before accessing these tables. */
|
||||
|
||||
#if PCRE2_CODE_UNIT_WIDTH == 8
|
||||
#define MAX_255(c) TRUE
|
||||
#define MAX_MARK ((1u << 8) - 1)
|
||||
#define TABLE_GET(c, table, default) ((table)[c])
|
||||
#ifdef SUPPORT_UNICODE
|
||||
#define SUPPORT_WIDE_CHARS
|
||||
#define CHMAX_255(c) ((c) <= 255u)
|
||||
#else
|
||||
#define CHMAX_255(c) TRUE
|
||||
#endif /* SUPPORT_UNICODE */
|
||||
#define TABLE_GET(c, table, default) ((table)[c])
|
||||
|
||||
#else /* Code units are 16 or 32 bits */
|
||||
#define CHMAX_255(c) ((c) <= 255u)
|
||||
|
@ -228,7 +228,6 @@ accessing these tables. */
|
|||
#endif
|
||||
|
||||
|
||||
|
||||
/* ----------------- Character-handling macros ----------------- */
|
||||
|
||||
/* There is a proposed future special "UTF-21" mode, in which only the lowest
|
||||
|
|
Loading…
Reference in New Issue