catv: catv without arguments was trying to use environ as argv.
(Alex Landau <landau_alex@yahoo.com>)
diff --git a/coreutils/catv.c b/coreutils/catv.c
index 876b67a..0ca73a0 100644
--- a/coreutils/catv.c
+++ b/coreutils/catv.c
@@ -15,7 +15,8 @@
int catv_main(int argc, char **argv);
int catv_main(int argc, char **argv)
{
- int retval = EXIT_SUCCESS, fd;
+ int retval = EXIT_SUCCESS;
+ int fd;
unsigned flags;
flags = getopt32(argc, argv, "etv");
@@ -27,8 +28,10 @@
/* Read from stdin if there's nothing else to do. */
fd = 0;
- if (!argv[0])
+ if (!argv[0]) {
+ argv--;
goto jump_in;
+ }
do {
fd = open_or_warn(*argv, O_RDONLY);
if (fd < 0) {
@@ -46,7 +49,7 @@
if (res < 1)
break;
for (i = 0; i < res; i++) {
- char c = read_buf[i];
+ unsigned char c = read_buf[i];
if (c > 126 && (flags & CATV_OPT_v)) {
if (c == 127) {