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