Author: bdubbs
Date: Tue Apr 22 22:53:15 2014
New Revision: 2884

Log:
Core patch name

Added:
   trunk/coreutils/coreutils-8.22-shuf_segfault-1.patch
      - copied unchanged from r2883, 
trunk/coreutils/coreutils-8.22-shuf_segfault.patch
Deleted:
   trunk/coreutils/coreutils-8.22-shuf_segfault.patch

Copied: trunk/coreutils/coreutils-8.22-shuf_segfault-1.patch (from r2883, 
trunk/coreutils/coreutils-8.22-shuf_segfault.patch)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/coreutils/coreutils-8.22-shuf_segfault-1.patch        Tue Apr 22 
22:53:15 2014        (r2884, copy of r2883, 
trunk/coreutils/coreutils-8.22-shuf_segfault.patch)
@@ -0,0 +1,66 @@
+Submitted By:            Miklos Karacsony <mkaracsony81 at gmail dot com>
+Date:                    2014-04-22
+Initial Package Version: 8.22
+Upstream Status:         Applied
+Origin:                  Upstream
+Description:             shuf: with -r, don't dump core if the input is empty
+
+diff --git a/NEWS b/NEWS
+index e72942b..2df246d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -22,6 +22,9 @@ GNU coreutils NEWS                                    -*- 
outline -*-
+   it would display an error, requiring --no-dereference to avoid the issue.
+   [bug introduced in coreutils-5.3.0]
+ 
++  shuf -r no longer dumps core if the input is empty.
++  [bug introduced in coreutils-8.22]
++
+ ** New features
+ 
+   od accepts a new option: --endian=TYPE to handle inputs with different byte
+diff --git a/src/shuf.c b/src/shuf.c
+index d4641fe..2a91072 100644
+--- a/src/shuf.c
++++ b/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
+     {
+diff --git a/tests/misc/shuf.sh b/tests/misc/shuf.sh
+index d3ea1f2..d7251d1 100755
+--- a/tests/misc/shuf.sh
++++ b/tests/misc/shuf.sh
+@@ -43,6 +43,10 @@ compare in out1 || { fail=1; echo "not a permutation" 1>&2; 
}
+ 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.8.5.3
+
-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to