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
This commit is contained in:
Glenn L McGrath 2004-07-23 01:42:28 +00:00
parent eeb06bf230
commit 9c83e83628

View File

@ -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();
}