Closed addisoncrump closed 12 months ago
there is indeed a larger problem with the implementation of that function as you can see from our test suite with "latest" sanitizer
Fixed in afce00e by not trying to look for other cases for characters above the Unicode maximum value.
The pattern
/[\x{ffffffff}]/caseless,ucp
causes an infinite loop in 32-bit mode.Since the options
caseless
anducp
are set, we callget_othercase_range
withend
set to\x{ffffffff}
.We then enter this loop:
Since
d
is auint32_t
andd = 0xffffffff
, this loop cannot terminate without its inner branches matching (neither of which ever do). I'm not sure how to handle this case (I think the character needs to be checked forMETA_END
but I'm not confident enough to just open a PR for this one :slightly_smiling_face: )