From: Denis Vlasenko Date: Tue, 15 Jul 2008 05:21:47 +0000 (-0000) Subject: ls: fix a bug where we may use uninintialized variable X-Git-Tag: 1_12_0~183 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=51f1b6c0e0160a3c836bc6700c3fa2a43601dfac;p=oweals%2Fbusybox.git ls: fix a bug where we may use uninintialized variable --- diff --git a/coreutils/ls.c b/coreutils/ls.c index a76ced1b9..f4e71bc6a 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c @@ -837,7 +837,8 @@ int ls_main(int argc UNUSED_PARAM, char **argv) int dnfiles; int dndirs; int i; - USE_FEATURE_LS_COLOR(char *color_opt;) + /* need to initialize since --color has _an optional_ argument */ + USE_FEATURE_LS_COLOR(const char *color_opt = "always";) INIT_G(); @@ -888,15 +889,15 @@ int ls_main(int argc UNUSED_PARAM, char **argv) if (ENABLE_FEATURE_LS_COLOR_IS_DEFAULT && isatty(STDOUT_FILENO)) { char *p = getenv("LS_COLORS"); /* LS_COLORS is unset, or (not empty && not "none") ? */ - if (!p || (p[0] && strcmp(p, "none"))) + if (!p || (p[0] && strcmp(p, "none") != 0)) show_color = 1; } if (opt & (1 << i)) { /* next flag after short options */ - if (!color_opt || !strcmp("always", color_opt)) + if (strcmp("always", color_opt) == 0) show_color = 1; - else if (color_opt && !strcmp("never", color_opt)) + else if (strcmp("never", color_opt) == 0) show_color = 0; - else if (color_opt && !strcmp("auto", color_opt) && isatty(STDOUT_FILENO)) + else if (strcmp("auto", color_opt) == 0 && isatty(STDOUT_FILENO)) show_color = 1; } #endif