From: Denis Vlasenko Date: Wed, 23 Apr 2008 07:22:31 +0000 (-0000) Subject: getopt32: fix "tar x" case; fix memory leak X-Git-Tag: 1_11_0~298 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=765c1c3c31493787b9cb53cc80574734e42a8844;p=oweals%2Fbusybox.git getopt32: fix "tar x" case; fix memory leak --- diff --git a/libbb/getopt32.c b/libbb/getopt32.c index 913a009b0..4b5a7d208 100644 --- a/libbb/getopt32.c +++ b/libbb/getopt32.c @@ -494,7 +494,7 @@ getopt32(char **argv, const char *applet_opts, ...) va_end(p); if (spec_flgs & FIRST_ARGV_IS_OPT) { - if (argv[1] && argv[1][0] != '-' && argv[1][1] != '\0') { + if (argv[1] && argv[1][0] != '-' && argv[1][0] != '\0') { #if DONT_USE_PRINTF char *pp = alloca(strlen(argv[1]) + 2); *pp = '-'; @@ -502,8 +502,7 @@ getopt32(char **argv, const char *applet_opts, ...) argv[1] = pp; #else argv[1] = xasprintf("-%s", argv[1]); - if (ENABLE_FEATURE_CLEAN_UP) - spec_flgs |= FREE_FIRST_ARGV_IS_OPT; + spec_flgs |= FREE_FIRST_ARGV_IS_OPT; #endif } } @@ -586,10 +585,9 @@ getopt32(char **argv, const char *applet_opts, ...) } } -#if ENABLE_FEATURE_CLEAN_UP if (spec_flgs & FREE_FIRST_ARGV_IS_OPT) free(argv[1]); -#endif + /* check depending requires for given options */ for (on_off = complementary; on_off->opt_char; on_off++) { if (on_off->requires && (flags & on_off->switch_on) &&