From: Todd C. Miller Date: Fri, 9 Jan 2009 00:13:37 +0000 (+0000) Subject: Do not try to set the close on exec flag if we didn't actually open sudoers. X-Git-Tag: SUDO_1_7_1~71 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=77794f27aac97e2995653bc11fe3bc04b14217ec;p=sudo Do not try to set the close on exec flag if we didn't actually open sudoers. --- diff --git a/sudo.c b/sudo.c index efee48310..2ff8927fa 100644 --- a/sudo.c +++ b/sudo.c @@ -1077,16 +1077,18 @@ open_sudoers(sudoers, keepopen) (unsigned long) statbuf.st_gid, (unsigned long) SUDOERS_GID); else if ((fp = fopen(sudoers, "r")) == NULL) log_error(USE_ERRNO, "can't open %s", sudoers); - else if (statbuf.st_size != 0) { + else { /* * Make sure we can actually read sudoers so we can present the - * user with a reasonable error message. + * user with a reasonable error message (unlike the lexer). */ - if (fgetc(fp) == EOF) - log_error(USE_ERRNO, "can't read %s", sudoers); - rewind(fp); + if (statbuf.st_size != 0) { + if (fgetc(fp) == EOF) + log_error(USE_ERRNO, "can't read %s", sudoers); + rewind(fp); + } + (void) fcntl(fileno(fp), F_SETFD, 1); } - (void) fcntl(fileno(fp), F_SETFD, 1); set_perms(PERM_ROOT); /* change back to root */ return(fp);