From 4b36657781ac38124d1f4445870eaf21c7f34c9e Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Mon, 22 Mar 2010 08:11:06 -0400 Subject: [PATCH] Pass in preserve_groups when the -P flag is specified as per the design --- src/parse_args.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/parse_args.c b/src/parse_args.c index d8837a86a..2df48ec3d 100644 --- a/src/parse_args.c +++ b/src/parse_args.c @@ -103,7 +103,9 @@ static struct sudo_settings { { "progname" }, #define ARG_IMPLIED_SHELL 13 { "implied_shell" }, -#define NUM_SETTINGS 14 +#define ARG_PRESERVE_GROUPS 14 + { "preserve_groups" }, +#define NUM_SETTINGS 15 { NULL } }; @@ -145,8 +147,7 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp, /* Flags allowed when running a command */ valid_flags = MODE_BACKGROUND|MODE_PRESERVE_ENV|MODE_RESET_HOME| - MODE_LOGIN_SHELL|MODE_NONINTERACTIVE| - MODE_PRESERVE_GROUPS|MODE_SHELL; + MODE_LOGIN_SHELL|MODE_NONINTERACTIVE|MODE_SHELL; /* XXX - should fill in settings at the end to avoid dupes */ for (;;) { /* @@ -237,7 +238,7 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp, SET(flags, MODE_NONINTERACTIVE); break; case 'P': - SET(flags, MODE_PRESERVE_GROUPS); + sudo_settings[ARG_PRESERVE_GROUPS].value = "true"; break; case 'p': sudo_settings[ARG_PROMPT].value = optarg; -- 2.40.0