GNU bug report logs -
#16586
grep: infinite loop in grep -P on some files with invalid UTF-8 sequences
Previous Next
Reported by: Santiago <santiago <at> debian.org>
Date: Wed, 29 Jan 2014 09:46:02 UTC
Severity: important
Found in version 2.16
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Forwarded to Philip Hazel <ph10@hermes.cam.ac.uk>
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Mon, 21 Apr 2014 11:03:10 -0700
with message-id <53555D5E.3080806 <at> cs.ucla.edu>
and subject line Re: bug#17245: GREP BUG: grep -P and binary files
has caused the debbugs.gnu.org bug report #16586,
regarding grep: infinite loop in grep -P on some files with invalid UTF-8 sequences
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
16586: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16586
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Package: grep
Version: 2.16
Severity: important
Hi there,
I forward this bug from debian's BTS. Last changes in -P brought another
problem. I've confirmed this behavior on last debian package:
----- Forwarded message from Vincent Lefevre <vincent <at> vinc17.net> -----
[snip]
grep -P loops on some files with invalid UTF-8 sequences, e.g.
$ /usr/bin/printf "\xe9\x65\n\xab\n" | grep -P '.e|.?z' | head
�e
�e
�e
�e
�e
�e
�e
�e
�e
�e
(the infinite loop is interrupted here by a broken pipe due to
the "head").
It seems that the fix of
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730472
didn't solve all the problems.
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.12-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages grep depends on:
ii dpkg 1.17.6
ii install-info 5.2.0.dfsg.1-2
ii libc6 2.17-97
ii libpcre3 1:8.31-2
grep recommends no packages.
grep suggests no packages.
-- no debconf information
----- End forwarded message -----
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
On 04/16/2014 05:13 AM, Norihiro Tanaka wrote:
> http://bugs.exim.org/show_bug.cgi?id=1468
Thanks. The response there makes it clear that if grep passes arbitrary
binary data to PCRE, and if grep uses PCRE_NO_UTF8_CHECK, undefined
behavior will result (maybe infinite loop, core dump, etc.). We can't
have undefined behavior in grep. A simple fix is to avoid using
PCRE_NO_UTF8_CHECK so I installed the attached patch to do that.
Perhaps we can think of a better way at some point. In the meantime I'm
taking the liberty of closing Bug#17245 and Bug#16586.
[0001-grep-P-now-rejects-invalid-input-sequences-in-UTF-8-.patch (text/x-patch, attachment)]
This bug report was last modified 11 years and 33 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.