Subject: bug#21513: bug#22793: grep -E assertion failure with back references

From: Paul Eggert <[email-masked]>
Date: Thu, 25 Feb 2016 00:01:52 -0800

[email-masked] wrote:
> Paul Eggert <[email-masked]> wrote:
>
>> With recent 'grep' you can work around the problem by configuring
>> --with-included-regex.
>
> Not so. I did a fresh
>
> 	./boostrap
> 	./configure --with-included-regex
> 	make
>
> and it still core dumps:
>
> $ echo abc | ./src/grep -E  '(.*)(.*)(.*)\3\2\1'
> grep: regexec.c:1413: pop_fail_stack: Assertion `((Idx) (num) < ((Idx) -2))' failed.
> Aborted (core dumped)
>
> I looked at it in a debugger fs->num before the --fs->num executes looks to
> be -1.

Sorry, you're right. I got confused into thinking that grep Bug#22793 and grep 
Bug#21513 are the same bugs, but they're not. I have unmerged them.

This is still a glibc bug, not a grep bug; it's just that we don't have a fix.

grep Bug#21513 is indeed fixed by configuring --with-included-regex.