mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-18 09:46:33 +02:00
* src/shuf.c (read_input): Fix an off-by-one error that
would cause an infloop for piped input of 8KB or more. * NEWS: Mention the fix. * tests/misc/shuf: Test for the above fix.
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
2006-09-29 Jim Meyering <jim@meyering.net>
|
||||
|
||||
* src/shuf.c (read_input): Fix an off-by-one error that
|
||||
would cause an infloop for piped input of 8KB or more.
|
||||
* NEWS: Mention the fix.
|
||||
* tests/misc/shuf: Test for the above fix.
|
||||
|
||||
Since any system may be affected by the Darwin readdir bug,
|
||||
perform the extra rewinddir unconditionally. The performance
|
||||
impact of rewinding a directory is negligible.
|
||||
|
||||
3
NEWS
3
NEWS
@@ -35,6 +35,9 @@ GNU coreutils NEWS -*- outline -*-
|
||||
|
||||
"groups" now processes options like --help more compatibly.
|
||||
|
||||
shuf would infloop, given 8KB or more of piped input
|
||||
|
||||
|
||||
* Major changes in release 6.2 (2006-09-18) [stable candidate]
|
||||
|
||||
** Changes in behavior
|
||||
|
||||
@@ -178,7 +178,7 @@ read_input (FILE *in, char eolbyte, char ***pline)
|
||||
|
||||
do
|
||||
{
|
||||
if (alloc == used)
|
||||
if (alloc <= used + 1)
|
||||
{
|
||||
if (alloc == SIZE_MAX)
|
||||
xalloc_die ();
|
||||
|
||||
@@ -51,4 +51,8 @@ cmp in out > /dev/null && { fail=1; echo "not random?" 1>&2; }
|
||||
sort -n out > out1
|
||||
cmp in out1 || { fail=1; echo "not a permutation" 1>&2; }
|
||||
|
||||
# Before coreutils-6.3, this would infloop.
|
||||
# "seq 1860" produces 8193 bytes of output.
|
||||
seq 1860 | shuf > /dev/null || fail=1
|
||||
|
||||
(exit $fail); exit $fail
|
||||
|
||||
Reference in New Issue
Block a user