diff options
Diffstat (limited to 'coreutils/env.c')
-rw-r--r-- | coreutils/env.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/coreutils/env.c b/coreutils/env.c index 7be0c63a5..f47d450c5 100644 --- a/coreutils/env.c +++ b/coreutils/env.c @@ -44,8 +44,8 @@ static const struct option env_long_options[] = { int env_main(int argc, char** argv); int env_main(int argc, char** argv) { - static char *cleanenv[1] = { NULL }; - + /* cleanenv was static - why? */ + char *cleanenv[1]; char **ep; unsigned opt; llist_t *unset_env = NULL; @@ -55,18 +55,16 @@ int env_main(int argc, char** argv) #if ENABLE_FEATURE_ENV_LONG_OPTIONS applet_long_options = env_long_options; #endif - opt = getopt32(argc, argv, "+iu:", &unset_env); - argv += optind; if (*argv && LONE_DASH(argv[0])) { opt |= 1; ++argv; } - - if (opt & 1) + if (opt & 1) { + cleanenv[0] = NULL; environ = cleanenv; - else if (opt & 2) { + } else if (opt & 2) { while (unset_env) { unsetenv(unset_env->data); unset_env = unset_env->link; |