https://bugs.exim.org/show_bug.cgi?id=1717
Bug ID: 1717
Summary: Classes beginning with POSIX class notation missing
elements
Product: PCRE
Version: 8.37
Hardware: x86
OS: All
Status: NEW
Severity: bug
Priority: medium
Component: Code
Assignee: ph10@???
Reporter: justin.viiret@???
CC: pcre-dev@???
Hi there,
We had a fuzzer (actually a simple pattern generator) produce some cases that
appear to be miscompiled by PCRE. Here is an example, using pcretest:
$ bin/pcretest -d
PCRE version 8.37 2015-04-28
re> /a[[:punct:]b]/8W
------------------------------------------------------------------
0 7 Bra
3 ab
7 7 Ket
10 End
------------------------------------------------------------------
It appears that the POSIX class has gone missing, leaving this class as just
[b]. Note that if an extra element is added, we get what we would expect:
re> /a[[:punct:]bc]/8W
------------------------------------------------------------------
0 45 Bra
3 a
5 [bc[:punct:]]
45 45 Ket
48 End
------------------------------------------------------------------
Similarly, we get the expected class (including :punct:) if we reorder the
first case as /a[b[:punct:]]/8W.
This seems to be dependent on the PCRE_UCP flag and happens for the [:graph:],
[:punct:], [:print:] classes -- perhaps to do with their special handling in
UCP mode?
This bug appears to be present in PCRE2 10.20 as well.
--
You are receiving this mail because:
You are on the CC list for the bug.