[pcre-dev] [Bug 1717] New: Classes beginning with POSIX clas…

Top Page
Delete this message
Author: admin
Date:  
To: pcre-dev
Subject: [pcre-dev] [Bug 1717] New: Classes beginning with POSIX class notation missing elements
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.