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:
parent
5d2bf6212b
commit
ad3c637e06
85
coreutils-shuf-repeat-avoid-crash-when-input-empty.patch
Normal file
85
coreutils-shuf-repeat-avoid-crash-when-input-empty.patch
Normal 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
|
@ -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
|
Sun Mar 16 19:28:34 UTC 2014 - mail@bernhard-voelker.de
|
||||||
|
|
||||||
|
@ -138,6 +138,10 @@ Patch305: coreutils-ln-avoid-segfault-for-empty-target.patch
|
|||||||
# Upstream patch for date(1), to be removed with v8.23:
|
# Upstream patch for date(1), to be removed with v8.23:
|
||||||
Patch306: coreutils-date-avoid-crash-in-TZ-parsing.patch
|
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
|
%description
|
||||||
These are the GNU core utilities. This package is the union of
|
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
|
%patch304
|
||||||
%patch305
|
%patch305
|
||||||
%patch306
|
%patch306
|
||||||
|
%patch307
|
||||||
|
|
||||||
#???## We need to statically link to gmp, otherwise we have a build loop
|
#???## We need to statically link to gmp, otherwise we have a build loop
|
||||||
#???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in
|
#???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in
|
||||||
|
@ -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
|
Sun Mar 16 19:28:34 UTC 2014 - mail@bernhard-voelker.de
|
||||||
|
|
||||||
|
@ -138,6 +138,10 @@ Patch305: coreutils-ln-avoid-segfault-for-empty-target.patch
|
|||||||
# Upstream patch for date(1), to be removed with v8.23:
|
# Upstream patch for date(1), to be removed with v8.23:
|
||||||
Patch306: coreutils-date-avoid-crash-in-TZ-parsing.patch
|
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
|
%description
|
||||||
These are the GNU core utilities. This package is the union of
|
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
|
%patch304
|
||||||
%patch305
|
%patch305
|
||||||
%patch306
|
%patch306
|
||||||
|
%patch307
|
||||||
|
|
||||||
#???## We need to statically link to gmp, otherwise we have a build loop
|
#???## We need to statically link to gmp, otherwise we have a build loop
|
||||||
#???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in
|
#???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user