3
0
forked from pool/coreutils

- 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
This commit is contained in:
Bernhard Voelker 2014-03-16 21:48:29 +00:00 committed by Git OBS Bridge
parent 5d2bf6212b
commit ad3c637e06
5 changed files with 109 additions and 0 deletions

View File

@ -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 <eggert@cs.ucla.edu>
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 <http://bugs.gnu.org/16855>.
* 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 <mail@bernhard-voelker.de>
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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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