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 valid_flags, ch;
|
||||||
int i, j;
|
int i, j;
|
||||||
char *cp, **env_add, **settings;
|
char *cp, **env_add, **settings;
|
||||||
|
const char *runas_user = NULL;
|
||||||
|
const char *runas_group = NULL;
|
||||||
const char *debug_flags;
|
const char *debug_flags;
|
||||||
int nenv = 0;
|
int nenv = 0;
|
||||||
int env_size = 32;
|
int env_size = 32;
|
||||||
@@ -282,8 +284,6 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
|
|||||||
SET(flags, MODE_SHELL);
|
SET(flags, MODE_SHELL);
|
||||||
break;
|
break;
|
||||||
case 'U':
|
case 'U':
|
||||||
if ((getpwnam(optarg)) == NULL)
|
|
||||||
fatalx(_("unknown user: %s"), optarg);
|
|
||||||
list_user = optarg;
|
list_user = optarg;
|
||||||
break;
|
break;
|
||||||
case 'u':
|
case 'u':
|
||||||
|
@@ -94,7 +94,7 @@
|
|||||||
struct plugin_container policy_plugin;
|
struct plugin_container policy_plugin;
|
||||||
struct plugin_container_list io_plugins;
|
struct plugin_container_list io_plugins;
|
||||||
struct user_details user_details;
|
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 struct command_details command_details;
|
||||||
static int sudo_mode;
|
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 policy_init_session(struct command_details *details);
|
||||||
int run_command(struct command_details *details);
|
int run_command(struct command_details *details);
|
||||||
int os_init_common(int argc, char *argv[], char *envp[]);
|
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;
|
extern struct user_details user_details;
|
||||||
|
|
||||||
/* sudo_edit.c */
|
/* sudo_edit.c */
|
||||||
|
Reference in New Issue
Block a user