From: Paul Eggert Date: Tue, 6 Jan 2015 03:40:03 +0000 (-0800) Subject: shuf: do not mishandle 'shuf -i0-0 1' X-Git-Tag: v8.24~154 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=63bc65fbe7ae850a03e0f343cf922767b4faf3ab;p=thirdparty%2Fcoreutils.git shuf: do not mishandle 'shuf -i0-0 1' Problem reported by Daiki Ueno in: http://bugs.gnu.org/19520 * src/shuf.c (main): Avoid core dump if !input_range. * tests/misc/shuf.sh: Test for this bug. --- diff --git a/src/shuf.c b/src/shuf.c index 75211bd4b1..9db027c183 100644 --- a/src/shuf.c +++ b/src/shuf.c @@ -501,7 +501,7 @@ main (int argc, char **argv) } if (input_range ? 0 < n_operands : !echo && 1 < n_operands) { - error (0, 0, _("extra operand %s"), quote (operand[1])); + error (0, 0, _("extra operand %s"), quote (operand[!input_range])); usage (EXIT_FAILURE); } diff --git a/tests/misc/shuf.sh b/tests/misc/shuf.sh index 7e7710254e..5e85d9acad 100755 --- a/tests/misc/shuf.sh +++ b/tests/misc/shuf.sh @@ -47,6 +47,10 @@ test "$t" = 'a b c d e' || { fail=1; echo "not a permutation" 1>&2; } shuf -er test $? -eq 1 || fail=1 +# coreutils-8.23 dumps core. +shuf -i0-0 1 +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