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:
@@ -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':
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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 */
|
||||
|
Reference in New Issue
Block a user