summaryrefslogtreecommitdiff
path: root/util-linux/rev.c
diff options
context:
space:
mode:
authorRon Yorston2021-08-21 09:36:27 +0100
committerDenys Vlasenko2021-08-22 00:08:18 +0200
commit4357569fdc7bc482dea0ef0bff57a70e7f06523c (patch)
tree472856f5ad9a28b1459566d39ec50bb7b84f6e36 /util-linux/rev.c
parent62d5a1e56f4022002c5c55e02d7d29e1e68bc236 (diff)
downloadbusybox-4357569fdc7bc482dea0ef0bff57a70e7f06523c.zip
busybox-4357569fdc7bc482dea0ef0bff57a70e7f06523c.tar.gz
rev: correct output for long input lines
The input buffer is initialised to a reasonable size and extended if necessary. When this happened the offset into the buffer wasn't reset to zero so subsequent lines were appended to the long line. Fix this and add some tests. function old new delta rev_main 377 368 -9 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-9) Total: -9 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'util-linux/rev.c')
-rw-r--r--util-linux/rev.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/util-linux/rev.c b/util-linux/rev.c
index d439b4d..63b005c 100644
--- a/util-linux/rev.c
+++ b/util-linux/rev.c
@@ -109,6 +109,7 @@ int rev_main(int argc UNUSED_PARAM, char **argv)
strrev(buf, strlen(buf));
#endif
fputs_stdout(buf);
+ pos = 0;
}
fclose(fp);
} while (*argv);