https://bugs.exim.org/show_bug.cgi?id=1651

Philip Hazel <p...@hermes.cam.ac.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #1 from Philip Hazel <p...@hermes.cam.ac.uk> ---
The length of the pattern was not relevant. This pattern also broke it:

/(?=di(?<=(?1))|(?=(.))))/

The important thing was the excess closing parenthesis. It should never have
been calling find_fixedlength in this circumstance. I have committed the patch.
It is so trivial that I reproduce it here as well:

--- pcre_compile.c      (revision 1569)
+++ pcre_compile.c      (working copy)
@@ -9449,7 +9449,7 @@
 exceptional ones forgo this. We scan the pattern to check that they are fixed
 length, and set their lengths. */

-if (cd->check_lookbehind)
+if (errorcode == 0 && cd->check_lookbehind)
   {
   pcre_uchar *cc = (pcre_uchar *)codestart;

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to