Do not error out if arg to -U option cannot be resolved, that is for

the plugin to decide.
There is no need for runas_user and runas_group to be global, make
them local to parse_args() instead.
This commit is contained in:
Todd C. Miller
2013-07-16 14:04:23 -06:00
parent e53e80187d
commit b4e1f7c446
3 changed files with 4 additions and 4 deletions

View File

@@ -129,6 +129,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
int valid_flags, ch;
int i, j;
char *cp, **env_add, **settings;
const char *runas_user = NULL;
const char *runas_group = NULL;
const char *debug_flags;
int nenv = 0;
int env_size = 32;
@@ -282,8 +284,6 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
SET(flags, MODE_SHELL);
break;
case 'U':
if ((getpwnam(optarg)) == NULL)
fatalx(_("unknown user: %s"), optarg);
list_user = optarg;
break;
case 'u':

View File

@@ -94,7 +94,7 @@
struct plugin_container policy_plugin;
struct plugin_container_list io_plugins;
struct user_details user_details;
const char *list_user, *runas_user, *runas_group; /* extern for parse_args.c */
const char *list_user; /* extern for parse_args.c */
static struct command_details command_details;
static int sudo_mode;

View File

@@ -214,7 +214,7 @@ bool exec_setup(struct command_details *details, const char *ptyname, int ptyfd)
int policy_init_session(struct command_details *details);
int run_command(struct command_details *details);
int os_init_common(int argc, char *argv[], char *envp[]);
extern const char *list_user, *runas_user, *runas_group;
extern const char *list_user;
extern struct user_details user_details;
/* sudo_edit.c */