On 07/29/2010 07:10 PM, Eric Blake wrote:
On 07/29/2010 10:46 AM, Rainer Tammer wrote:
*If I use M4 1.4.14.6-ffa0:*

# ../src/m4 164.regexp
../src/m4:164.regexp:10: bad regular expression: `\<[a-z]\w+': Memory
exhausted

...and has since regressed.

Looks like we have a suspect...

commit 602e3e6b709592f883ebb7bf58df1f955ea4b8f2
Author: Jim Meyering <meyer...@redhat.com>
Date:   Fri Mar 19 21:26:36 2010 +0100

    regcomp.c: make non-_LIBC implementation of build_range_exp consistent

    The _LIBC implementation of build_range_exp correctly honors the
    RE_NO_EMPTY_RANGES flag when checking for reversed range endpoints.
    However, the non-_LIBC implementation would ignore that syntax-bit
    flag and return REG_ERANGE unconditionally.
    This change makes it honor that flag.
    * lib/regcomp.c (build_range_exp) [!_LIBC]: Add a parameter:
    "syntax".  Make two pointer parameters "const".
    Use "syntax" bits in order to honor RE_NO_EMPTY_RANGES.
    (parse_bracket_exp): Update caller.

Unfortunately, I don't think I'll have much time to look at it. Anyway, Eric, is this reproducible on a glibc system --with-included-regex?

Paolo

Reply via email to