Print usage and return an error when an empty argument is given for
all command line arguments other than -p and -E. Bug #817
This commit is contained in:
@@ -302,6 +302,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
||||
break;
|
||||
#ifdef HAVE_BSD_AUTH_H
|
||||
case 'a':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
sudo_settings[ARG_BSDAUTH_TYPE].value = optarg;
|
||||
break;
|
||||
#endif
|
||||
@@ -317,6 +319,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
||||
break;
|
||||
#ifdef HAVE_LOGIN_CAP_H
|
||||
case 'c':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
sudo_settings[ARG_LOGIN_CLASS].value = optarg;
|
||||
break;
|
||||
#endif
|
||||
@@ -342,6 +346,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
||||
valid_flags = MODE_NONINTERACTIVE;
|
||||
break;
|
||||
case 'g':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
runas_group = optarg;
|
||||
sudo_settings[ARG_RUNAS_GROUP].value = optarg;
|
||||
break;
|
||||
@@ -370,6 +376,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case OPT_HOSTNAME:
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
sudo_settings[ARG_REMOTE_HOST].value = optarg;
|
||||
break;
|
||||
case 'i':
|
||||
@@ -404,17 +412,24 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
||||
sudo_settings[ARG_PRESERVE_GROUPS].value = "true";
|
||||
break;
|
||||
case 'p':
|
||||
/* An empty prompt is allowed. */
|
||||
sudo_settings[ARG_PROMPT].value = optarg;
|
||||
break;
|
||||
#ifdef HAVE_SELINUX
|
||||
case 'r':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
sudo_settings[ARG_SELINUX_ROLE].value = optarg;
|
||||
break;
|
||||
case 't':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
sudo_settings[ARG_SELINUX_TYPE].value = optarg;
|
||||
break;
|
||||
#endif
|
||||
case 'T':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
sudo_settings[ARG_TIMEOUT].value = optarg;
|
||||
break;
|
||||
case 'S':
|
||||
@@ -425,9 +440,13 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv,
|
||||
SET(flags, MODE_SHELL);
|
||||
break;
|
||||
case 'U':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
list_user = optarg;
|
||||
break;
|
||||
case 'u':
|
||||
if (*optarg == '\0')
|
||||
usage(1);
|
||||
runas_user = optarg;
|
||||
sudo_settings[ARG_RUNAS_USER].value = optarg;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user