If we were invoked with any name ending in "edit", treat as sudoedit.
This commit is contained in:
@@ -180,6 +180,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
|
|||||||
const char *runas_user = NULL;
|
const char *runas_user = NULL;
|
||||||
const char *runas_group = NULL;
|
const char *runas_group = NULL;
|
||||||
const char *debug_flags;
|
const char *debug_flags;
|
||||||
|
const char *progname;
|
||||||
|
int proglen;
|
||||||
int nenv = 0;
|
int nenv = 0;
|
||||||
int env_size = 32;
|
int env_size = 32;
|
||||||
debug_decl(parse_args, SUDO_DEBUG_ARGS)
|
debug_decl(parse_args, SUDO_DEBUG_ARGS)
|
||||||
@@ -187,10 +189,13 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
|
|||||||
env_add = sudo_emallocarray(env_size, sizeof(char *));
|
env_add = sudo_emallocarray(env_size, sizeof(char *));
|
||||||
|
|
||||||
/* Pass progname to plugin so it can call initprogname() */
|
/* Pass progname to plugin so it can call initprogname() */
|
||||||
sudo_settings[ARG_PROGNAME].value = getprogname();
|
progname = getprogname();
|
||||||
|
sudo_settings[ARG_PROGNAME].value = progname;
|
||||||
|
|
||||||
/* First, check to see if we were invoked as "sudoedit". */
|
/* First, check to see if we were invoked as "sudoedit". */
|
||||||
if (strcmp(getprogname(), "sudoedit") == 0) {
|
proglen = strlen(progname);
|
||||||
|
if (proglen > 4 && strcmp(progname + proglen - 4, "edit") == 0) {
|
||||||
|
progname = "sudoedit";
|
||||||
mode = MODE_EDIT;
|
mode = MODE_EDIT;
|
||||||
sudo_settings[ARG_SUDOEDIT].value = "true";
|
sudo_settings[ARG_SUDOEDIT].value = "true";
|
||||||
}
|
}
|
||||||
@@ -287,7 +292,7 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (mode && mode != MODE_HELP) {
|
if (mode && mode != MODE_HELP) {
|
||||||
if (strcmp(getprogname(), "sudoedit") != 0)
|
if (strcmp(progname, "sudoedit") != 0)
|
||||||
usage_excl(1);
|
usage_excl(1);
|
||||||
}
|
}
|
||||||
mode = MODE_HELP;
|
mode = MODE_HELP;
|
||||||
|
Reference in New Issue
Block a user