From 1c16c9598e67e0db641af8b85abf8c009e3a9226 Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?= Date: Sat, 27 Jun 2009 01:48:49 +0100 Subject: [PATCH] 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 --- src/stdbuf.c | 2 +- tests/misc/stdbuf | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/stdbuf.c b/src/stdbuf.c index 89f2242..5da9341 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 6f79e77..30aa589 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 -- 2.7.4