diff options
author | Pádraig Brady <P@draigBrady.com> | 2013-01-23 12:34:46 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2013-04-14 01:01:21 +0100 |
commit | 1fe218888aace1703f78e0af0059d7a15485bf7f (patch) | |
tree | 814d8ed411722cf1bb074fe5be861a4e4c7c9d6c /tests/misc | |
parent | 8901e010fa24ba375d53e3e37fc7819621adcf19 (diff) | |
download | coreutils-1fe218888aace1703f78e0af0059d7a15485bf7f.tar.xz |
head: with --bytes=-N only allocate memory as needed
* src/head.c (elide_tail_bytes_pipe): Don't use calloc as that
bypasses memory overcommit due to the zeroing requirement.
Also realloc rather than malloc the pointer array to avoid
dependence on overcommit entirely.
* tests/misc/head-c.sh: Add a test case.
Fixes http://bugs.gnu.org/13530
Diffstat (limited to 'tests/misc')
-rwxr-xr-x | tests/misc/head-c.sh | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tests/misc/head-c.sh b/tests/misc/head-c.sh index 6807c4d5a..eada8d550 100755 --- a/tests/misc/head-c.sh +++ b/tests/misc/head-c.sh @@ -1,5 +1,5 @@ #!/bin/sh -# exercise the fix of 2001-08-18, based on test case from Ian Bruce +# exercise head -c # Copyright (C) 2001-2013 Free Software Foundation, Inc. @@ -19,12 +19,17 @@ . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src print_ver_ head +# exercise the fix of 2001-08-18, based on test case from Ian Bruce echo abc > in || framework_failure_ - (head -c1; head -c1) < in > out || fail=1 case "$(cat out)" in ab) ;; *) fail=1 ;; esac +# Only allocate memory as needed. +# Coreutils <= 8.21 would allocate memory up front +# based on the value passed to -c +(ulimit -v 20000; head --bytes=-E < /dev/null) || fail=1 + Exit $fail |