Don't clobber errno after calling check_sudoers().

This commit is contained in:
Todd C. Miller
1999-02-02 22:54:04 +00:00
parent 97d36a72d4
commit e6f9653f79

7
sudo.c
View File

@@ -191,7 +191,8 @@ int main(argc, argv)
int argc; int argc;
char **argv; char **argv;
{ {
int rtn, cmnd_status = FOUND; int rtn, serrno;
int cmnd_status = FOUND;
int sudo_mode = MODE_RUN; int sudo_mode = MODE_RUN;
extern char ** environ; extern char ** environ;
@@ -290,8 +291,10 @@ int main(argc, argv)
rtn = check_sudoers(); /* check mode/owner on _PATH_SUDO_SUDOERS */ rtn = check_sudoers(); /* check mode/owner on _PATH_SUDO_SUDOERS */
if (rtn != ALL_SYSTEMS_GO) { if (rtn != ALL_SYSTEMS_GO) {
serrno = errno;
log_error(rtn); log_error(rtn);
set_perms(PERM_FULL_USER, sudo_mode); set_perms(PERM_FULL_USER, sudo_mode);
errno = serrno;
inform_user(rtn); inform_user(rtn);
exit(1); exit(1);
} }
@@ -902,7 +905,7 @@ static int check_sudoers()
*/ */
set_perms(PERM_SUDOERS, 0); set_perms(PERM_SUDOERS, 0);
if (lstat(_PATH_SUDO_SUDOERS, &statbuf) != 0 && rootstat != 0) if (rootstat != 0 && lstat(_PATH_SUDO_SUDOERS, &statbuf) != 0)
rtn = NO_SUDOERS_FILE; rtn = NO_SUDOERS_FILE;
else if (!S_ISREG(statbuf.st_mode)) else if (!S_ISREG(statbuf.st_mode))
rtn = SUDOERS_NOT_FILE; rtn = SUDOERS_NOT_FILE;