From ad3c637e06182501618601f607bf6de24b196c644bf7feb0b8e4e39aa3031991 Mon Sep 17 00:00:00 2001 From: Bernhard Voelker Date: Sun, 16 Mar 2014 21:48:29 +0000 Subject: [PATCH] - Add upstream patch (gnu#16855): * coreutils-shuf-repeat-avoid-crash-when-input-empty.patch: Add patch for shuf: with -r, don't dump core if the input is empty. OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=231 --- ...-repeat-avoid-crash-when-input-empty.patch | 85 +++++++++++++++++++ coreutils-testsuite.changes | 7 ++ coreutils-testsuite.spec | 5 ++ coreutils.changes | 7 ++ coreutils.spec | 5 ++ 5 files changed, 109 insertions(+) create mode 100644 coreutils-shuf-repeat-avoid-crash-when-input-empty.patch diff --git a/coreutils-shuf-repeat-avoid-crash-when-input-empty.patch b/coreutils-shuf-repeat-avoid-crash-when-input-empty.patch new file mode 100644 index 0000000..2874c1b --- /dev/null +++ b/coreutils-shuf-repeat-avoid-crash-when-input-empty.patch @@ -0,0 +1,85 @@ +Port upstream fix for shuf, to be removed with v8.23: + + shuf --repeat no longer dumps core if the input is empty. + [bug introduced with the --repeat feature in coreutils-8.22] + +This patch squashes these 2 upstream commits: + + http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=9f60f37a28 + http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=5475e6083f + +While the former implements the actual fix for the problem, +the latter only changes the new error diagnostic. The change in the +NEWS entry in the latter patch is not visible in the following patch +because that hunk is omitted; however, that corrected NEWS entry is +above. + +----------------------------------------------- +commit 9f60f37a28c37acb66aa38003ccaa07f13abbd9d +Author: Paul Eggert +Date: Sun Feb 23 15:34:48 2014 -0800 + + shuf: with -r, don't dump core if the input is empty + + Problem reported by valiant xiao in . + * src/shuf.c (main): With -r, report an error if the input is empty. + * tests/misc/shuf.sh: Test for the bug. + +----------------------------------------------- +commit 5475e6083f46a2f9f7ccf4173f391bf518421523 +Author: Bernhard Voelker +Date: Wed Feb 26 08:36:50 2014 +0100 + + shuf: convert error diagnostic to lowercase + + * src/shuf.c (main): s/No/no/, introduced by commit v8.22-25-g9f60f37. + + Prompted by the syntax-check rule sc_error_message_uppercase + +--- + src/shuf.c | 15 +++++++++++---- + tests/misc/shuf.sh | 4 ++++ + 2 files changed, 15 insertions(+), 4 deletions(-) + +Index: src/shuf.c +=================================================================== +--- src/shuf.c.orig ++++ src/shuf.c +@@ -576,11 +576,18 @@ main (int argc, char **argv) + /* Generate output according to requested method */ + if (repeat) + { +- if (input_range) +- i = write_random_numbers (randint_source, head_lines, +- lo_input, hi_input, eolbyte); ++ if (head_lines == 0) ++ i = 0; + else +- i = write_random_lines (randint_source, head_lines, line, n_lines); ++ { ++ if (n_lines == 0) ++ error (EXIT_FAILURE, 0, _("no lines to repeat")); ++ if (input_range) ++ i = write_random_numbers (randint_source, head_lines, ++ lo_input, hi_input, eolbyte); ++ else ++ i = write_random_lines (randint_source, head_lines, line, n_lines); ++ } + } + else + { +Index: tests/misc/shuf.sh +=================================================================== +--- tests/misc/shuf.sh.orig ++++ tests/misc/shuf.sh +@@ -43,6 +43,10 @@ compare in out1 || { fail=1; echo "not a + t=$(shuf -e a b c d e | sort | fmt) + test "$t" = 'a b c d e' || { fail=1; echo "not a permutation" 1>&2; } + ++# coreutils-8.22 dumps core. ++shuf -er ++test $? -eq 1 || fail=1 ++ + # Before coreutils-6.3, this would infloop. + # "seq 1860" produces 8193 (8K + 1) bytes of output. + seq 1860 | shuf > /dev/null || fail=1 diff --git a/coreutils-testsuite.changes b/coreutils-testsuite.changes index 7bd4e9c..913e8db 100644 --- a/coreutils-testsuite.changes +++ b/coreutils-testsuite.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Mar 16 20:38:48 UTC 2014 - mail@bernhard-voelker.de + +- Add upstream patch (gnu#16855): + * coreutils-shuf-repeat-avoid-crash-when-input-empty.patch: Add + patch for shuf: with -r, don't dump core if the input is empty. + ------------------------------------------------------------------- Sun Mar 16 19:28:34 UTC 2014 - mail@bernhard-voelker.de diff --git a/coreutils-testsuite.spec b/coreutils-testsuite.spec index de83382..9d96cbc 100644 --- a/coreutils-testsuite.spec +++ b/coreutils-testsuite.spec @@ -138,6 +138,10 @@ Patch305: coreutils-ln-avoid-segfault-for-empty-target.patch # Upstream patch for date(1), to be removed with v8.23: Patch306: coreutils-date-avoid-crash-in-TZ-parsing.patch +# Upstream patch for shuf(1), to be removed with v8.23: +# shuf --repeat no longer dumps core if the input is empty. +Patch307: coreutils-shuf-repeat-avoid-crash-when-input-empty.patch + # ================================================ %description These are the GNU core utilities. This package is the union of @@ -181,6 +185,7 @@ the GNU fileutils, sh-utils, and textutils packages. %patch304 %patch305 %patch306 +%patch307 #???## We need to statically link to gmp, otherwise we have a build loop #???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in diff --git a/coreutils.changes b/coreutils.changes index 7bd4e9c..913e8db 100644 --- a/coreutils.changes +++ b/coreutils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Mar 16 20:38:48 UTC 2014 - mail@bernhard-voelker.de + +- Add upstream patch (gnu#16855): + * coreutils-shuf-repeat-avoid-crash-when-input-empty.patch: Add + patch for shuf: with -r, don't dump core if the input is empty. + ------------------------------------------------------------------- Sun Mar 16 19:28:34 UTC 2014 - mail@bernhard-voelker.de diff --git a/coreutils.spec b/coreutils.spec index d6476d6..cfd1fe1 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -138,6 +138,10 @@ Patch305: coreutils-ln-avoid-segfault-for-empty-target.patch # Upstream patch for date(1), to be removed with v8.23: Patch306: coreutils-date-avoid-crash-in-TZ-parsing.patch +# Upstream patch for shuf(1), to be removed with v8.23: +# shuf --repeat no longer dumps core if the input is empty. +Patch307: coreutils-shuf-repeat-avoid-crash-when-input-empty.patch + # ================================================ %description These are the GNU core utilities. This package is the union of @@ -181,6 +185,7 @@ the GNU fileutils, sh-utils, and textutils packages. %patch304 %patch305 %patch306 +%patch307 #???## We need to statically link to gmp, otherwise we have a build loop #???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in