From: Todd C. Miller Date: Wed, 16 May 2018 15:10:43 +0000 (-0600) Subject: Only set MODE_PRESERVE_ENV when preserving the entire environment. X-Git-Tag: SUDO_1_8_24^2~79 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf9c0102d48235d0451f70568f749b7de35c10e1;p=sudo Only set MODE_PRESERVE_ENV when preserving the entire environment. Fixes a problem introduced in 1.8.23 where "sudo -i" could not be used in conjunction with --preserve-env=VARIABLE. Bug #835 --- diff --git a/src/parse_args.c b/src/parse_args.c index d1f5e75b1..918201102 100644 --- a/src/parse_args.c +++ b/src/parse_args.c @@ -330,14 +330,15 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, case 'E': /* * Optional argument is a comma-separated list of - * environment variables to preserve. If not present, - * preserve everything. + * environment variables to preserve. + * If not present, preserve everything. */ - if (optarg == NULL) + if (optarg == NULL) { sudo_settings[ARG_PRESERVE_ENVIRONMENT].value = "true"; - else + SET(flags, MODE_PRESERVE_ENV); + } else { parse_env_list(&extra_env, optarg); - SET(flags, MODE_PRESERVE_ENV); + } break; case 'e': if (mode && mode != MODE_EDIT)