On Mon, Mar 27, 2023 at 6:15 AM Koen Claessen <k...@chalmers.se> wrote: > Running the command: > > echo a | grep -E -w '((()|a)|())*' > > does not terminate, and uses a LOT of processor time, for all versions of > grep I have tried. > > This is the smallest case that could be found; simplifying anything in the > input and/or expression leads to correct behavior.
Thank you! How did you find that? FYI, this strikes grep-3.10 (on Fedora 37/glibc-2.36-9.fc37.x86_64) when using LC_ALL=en_US.UTF-8, but not with LC_ALL=C. I.e., this infloops: echo a | LC_ALL=en_US.UTF-8 grep -E -w '((()|a)|())*' but this works as expected and promptly prints its line of input: echo a | LC_ALL=C grep -E -w '((()|a)|())*' For now, I've added an expected-failing test case for this bug:
grep-glibc-infloop.patch
Description: Binary data