From 9c83e836281e75b9c4be3906d74d62f2f94a94ea Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Fri, 23 Jul 2004 01:42:28 +0000 Subject: Felipe Kellermann writes, "As noticed today by Steven Scholz, the od's `-v' was broken. I've fixed that and now both the flags `-v' and `-a' are OK" Fixes a segfault in echo "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu\02bar\4"| ./busybox od -av --- coreutils/od.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/coreutils/od.c b/coreutils/od.c index b18c53c3f..6a138e838 100644 --- a/coreutils/od.c +++ b/coreutils/od.c @@ -155,13 +155,13 @@ static const char * const add_strings[] = { "4/4 \" %011o \" \"\\n\"", /* O */ }; -static const signed char od_opts[] = "aBbcDdeFfHhIiLlOovXx"; +static const signed char od_opts[] = "aBbcDdeFfHhIiLlOoXxv"; static const signed char od_o2si[] = { 0, 1, 2, 3, 5, 4, 6, 6, 7, 8, 9, 0xa, 0xb, 0xa, 0xa, - 0xb, 1, -1, 8, 9, + 0xb, 1, 8, 9, }; int od_main(int argc, char **argv) @@ -173,7 +173,9 @@ int od_main(int argc, char **argv) bb_dump_length = -1; while ((ch = getopt(argc, argv, od_opts)) > 0) { - if (((p = strchr(od_opts, ch)) != NULL) && (*p >= 0)) { + if (ch == 'v') { + bb_dump_vflag = ALL; + } else if (((p = strchr(od_opts, ch)) != NULL) && (*p >= 0)) { if (first) { first = 0; bb_dump_add("\"%07.7_Ao\n\""); @@ -182,8 +184,6 @@ int od_main(int argc, char **argv) bb_dump_add("\" \""); } bb_dump_add(add_strings[od_o2si[(int)(p-od_opts)]]); - } else if (ch == 'v') { - bb_dump_vflag = ALL; } else { /* P, p, s, w, or other unhandled */ bb_show_usage(); } -- cgit v1.2.3