more: fix setuid/setgid order
The rule is pretty simple, always use setgid() before setuid(). Reported-by: Jan Pazdziora <jpazdziora@redhat.com> Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
8ff8b02782
commit
19f2cebd48
|
@ -1250,10 +1250,10 @@ static void execute(struct more_control *ctl, char *filename, char *cmd, ...)
|
|||
va_end(argp);
|
||||
|
||||
if (geteuid() != getuid() || getegid() != getgid()) {
|
||||
if (setuid(getuid()) < 0)
|
||||
err(EXIT_FAILURE, _("setuid failed"));
|
||||
if (setgid(getgid()) < 0)
|
||||
err(EXIT_FAILURE, _("setgid failed"));
|
||||
if (setuid(getuid()) < 0)
|
||||
err(EXIT_FAILURE, _("setuid failed"));
|
||||
}
|
||||
|
||||
execvp(cmd, args);
|
||||
|
|
Loading…
Reference in New Issue