--- Begin Message ---
Subject: |
grep: infinite loop in grep -P on some files with invalid UTF-8 sequences |
Date: |
Wed, 29 Jan 2014 10:43:46 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
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 <address@hidden> -----
[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 -----
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#17245: GREP BUG: grep -P and binary files |
Date: |
Mon, 21 Apr 2014 11:03:10 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
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
Description: Text Data
--- End Message ---