Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/grep/files/, sys-apps/grep/
Date: Wed, 08 Feb 2017 21:37:47
Message-Id: 1486589857.aa2f866c5f633501863c0fb48ea7d368761596d2.polynomial-c@gentoo
1 commit: aa2f866c5f633501863c0fb48ea7d368761596d2
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Wed Feb 8 21:36:09 2017 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Wed Feb 8 21:37:37 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa2f866c
7
8 sys-apps/grep: Revbump to fix multiple pattern issue (bug #608644).
9
10 Removed old.
11
12 Package-Manager: Portage-2.3.3, Repoman-2.3.1
13
14 .../files/grep-2.28-multiple_pattern_fix.patch | 97 ++++++++++++++++++++++
15 .../grep/{grep-2.28.ebuild => grep-2.28-r1.ebuild} | 5 ++
16 2 files changed, 102 insertions(+)
17
18 diff --git a/sys-apps/grep/files/grep-2.28-multiple_pattern_fix.patch b/sys-apps/grep/files/grep-2.28-multiple_pattern_fix.patch
19 new file mode 100644
20 index 0000000000..f6cf64d383
21 --- /dev/null
22 +++ b/sys-apps/grep/files/grep-2.28-multiple_pattern_fix.patch
23 @@ -0,0 +1,97 @@
24 +From 6e4c8728f0e75af57f839625d0bd51b0a02d091e Mon Sep 17 00:00:00 2001
25 +From: Paul Eggert <eggert@×××××××.edu>
26 +Date: Wed, 8 Feb 2017 13:00:11 -0800
27 +Subject: grep: do not mishandle \. in multiple patterns
28 +
29 +Problem reported by Lars Wendler (Bug#25655).
30 +* NEWS: Document this.
31 +* src/grep.c (try_fgrep_pattern): Fix typo that prevented
32 +keys from being properly updated.
33 +* tests/foad1: Test for the bug.
34 +---
35 + src/grep.c | 15 ++++++++-------
36 + tests/foad1 | 7 +++++++
37 + 3 files changed, 20 insertions(+), 7 deletions(-)
38 +
39 +diff --git a/src/grep.c b/src/grep.c
40 +index 81654c3..74acb0b 100644
41 +--- a/src/grep.c
42 ++++ b/src/grep.c
43 +@@ -2361,11 +2361,12 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
44 + size_t len = *len_p;
45 + char *new_keys = xmalloc (len + 1);
46 + char *p = new_keys;
47 ++ char const *q = keys;
48 + mbstate_t mb_state = { 0 };
49 +
50 + while (len != 0)
51 + {
52 +- switch (*keys)
53 ++ switch (*q)
54 + {
55 + case '$': case '*': case '.': case '[': case '^':
56 + goto fail;
57 +@@ -2377,7 +2378,7 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
58 +
59 + case '\\':
60 + if (1 < len)
61 +- switch (keys[1])
62 ++ switch (q[1])
63 + {
64 + case '\n':
65 + case 'B': case 'S': case 'W': case'\'': case '<':
66 +@@ -2391,7 +2392,7 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
67 + goto fail;
68 + /* Fall through. */
69 + default:
70 +- keys++, len--;
71 ++ q++, len--;
72 + break;
73 + }
74 + break;
75 +@@ -2401,20 +2402,20 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
76 + size_t n;
77 + if (match_icase)
78 + {
79 +- int ni = fgrep_icase_charlen (keys, len, &mb_state);
80 ++ int ni = fgrep_icase_charlen (q, len, &mb_state);
81 + if (ni < 0)
82 + goto fail;
83 + n = ni;
84 + }
85 + else
86 + {
87 +- n = mb_clen (keys, len, &mb_state);
88 ++ n = mb_clen (q, len, &mb_state);
89 + if (MB_LEN_MAX < n)
90 + goto fail;
91 + }
92 +
93 +- p = mempcpy (p, keys, n);
94 +- keys += n;
95 ++ p = mempcpy (p, q, n);
96 ++ q += n;
97 + len -= n;
98 + }
99 + }
100 +diff --git a/tests/foad1 b/tests/foad1
101 +index 286c449..0163f1a 100755
102 +--- a/tests/foad1
103 ++++ b/tests/foad1
104 +@@ -137,6 +137,13 @@ grep_test "$x2" "$y2" -F -w --color=always bc
105 + grep_test "$x3" "$y3" -E -w --color=always bc
106 + grep_test "$x3" "$y3" -F -w --color=always bc
107 +
108 ++# Bug#25655
109 ++grep_test .tar/ .tar/ -e '\.tar' -e '\.tbz'
110 ++grep_test .tar/ .tar/ -o -e '\.tar' -e 'tar'
111 ++grep_test '$*.[^\/' '$*.[^\/' -o -e '\$\*\.\[\^\\' -e abc
112 ++grep_test '$*.[^\/(+?{|/' '$*.[^\/(+?{|/' -o -E \
113 ++ -e '\$\*\.\[\^\\' -e '\(\+\?\{\|'
114 ++
115 + # Skip the rest of the tests - known to fail. TAA.
116 + Exit $failures
117 +
118 +--
119 +cgit v1.0-41-gc330
120 +
121
122 diff --git a/sys-apps/grep/grep-2.28.ebuild b/sys-apps/grep/grep-2.28-r1.ebuild
123 similarity index 94%
124 rename from sys-apps/grep/grep-2.28.ebuild
125 rename to sys-apps/grep/grep-2.28-r1.ebuild
126 index f2035a7b7a..dc112782f9 100644
127 --- a/sys-apps/grep/grep-2.28.ebuild
128 +++ b/sys-apps/grep/grep-2.28-r1.ebuild
129 @@ -27,7 +27,12 @@ DEPEND="${RDEPEND}
130
131 DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
132
133 +PATCHES=(
134 + "${FILESDIR}"/${P}-multiple_pattern_fix.patch
135 +)
136 +
137 src_prepare() {
138 + epatch "${PATCHES[@]}"
139 sed -i \
140 -e "s:@SHELL@:${EPREFIX}/bin/sh:g" \
141 src/egrep.sh || die #523898