diff options
author | Rob Landley <rob@landley.net> | 2014-09-27 19:58:18 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2014-09-27 19:58:18 -0500 |
commit | dc1af185e73410c5cad997c600678c212262a13c (patch) | |
tree | 43b8dff99d6607f726dd47b56965779da8bc1128 | |
parent | e0d8009d76b3a2451cb6c6ed2b241c7eff06ed60 (diff) | |
download | toybox-dc1af185e73410c5cad997c600678c212262a13c.tar.gz |
Don't segfault for --help of single.sh build of OLDTOY commands that use another command's help.
-rw-r--r-- | lib/help.c | 5 | ||||
-rw-r--r-- | main.c | 4 |
2 files changed, 8 insertions, 1 deletions
@@ -25,6 +25,11 @@ void show_help(void) while (i--) s += strlen(s) + 1; // If it's an alias, restart search for real name if (*s != 255) break; + if (!CFG_TOYBOX) { + s = xmprintf("See %s --help\n", ++s); + + break; + } i = toy_find(++s)-toy_list; } @@ -26,6 +26,8 @@ struct toy_list *toy_find(char *name) { int top, bottom, middle; + if (!CFG_TOYBOX) return 0; + // If the name starts with "toybox" accept that as a match. Otherwise // skip the first entry, which is out of order. @@ -69,7 +71,7 @@ static void toy_singleinit(struct toy_list *which, char *argv[]) if (CFG_TOYBOX_I18N) setlocale(LC_ALL, "C"+!!(which->flags & TOYFLAG_LOCALE)); if (CFG_TOYBOX_HELP_DASHDASH && argv[1] && !strcmp(argv[1], "--help")) { - if (toys.which == toy_list && toys.argv[2]) + if (CFG_TOYBOX && toys.which == toy_list && toys.argv[2]) if (!(toys.which = toy_find(toys.argv[2]))) return; show_help(); xexit(); |