summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2009-06-27 01:48:49 +0100
committerPádraig Brady <P@draigBrady.com>2009-06-27 02:21:43 +0100
commit1c16c9598e67e0db641af8b85abf8c009e3a9226 (patch)
tree2609c19bad26c161fb8ea9b123ceffbf03d4bd02
parent9c6c621c324148b13216cfc9bcb35e81eb151d50 (diff)
downloadcoreutils-1c16c9598e67e0db641af8b85abf8c009e3a9226.tar.xz
stdbuf: fix to stop -i option causing an assertion
* src/stdbuf.c (main): Fix the array bounds check in the assert * tests/misc/stdbuf: Add a test for all standard streams
-rw-r--r--src/stdbuf.c2
-rwxr-xr-xtests/misc/stdbuf1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/stdbuf.c b/src/stdbuf.c
index 89f2242de..5da934191 100644
--- a/src/stdbuf.c
+++ b/src/stdbuf.c
@@ -319,7 +319,7 @@ main (int argc, char **argv)
case 'i':
case 'o':
opt_fileno = optc_to_fileno (c);
- assert (0 < opt_fileno && opt_fileno <= ARRAY_CARDINALITY (stdbuf));
+ assert (0 <= opt_fileno && opt_fileno < ARRAY_CARDINALITY (stdbuf));
stdbuf[opt_fileno].optc = c;
while (c_isspace (*optarg))
optarg++;
diff --git a/tests/misc/stdbuf b/tests/misc/stdbuf
index 6f79e771f..30aa5898e 100755
--- a/tests/misc/stdbuf
+++ b/tests/misc/stdbuf
@@ -41,6 +41,7 @@ stdbuf -oL true || fail=1 # verify line buffered syntax
stdbuf -ol true && fail=1 # Capital 'L' required
stdbuf -o$SIZE_OFLOW true && fail=1 # size too large
stdbuf -iL true && fail=1 # line buffering stdin disallowed
+stdbuf -i0 -o0 -e0 true || fail=1 #check all files
# Ensure line buffering stdout takes effect
printf '1\n' > exp