From: Todd C. Miller Date: Sun, 25 Oct 2015 20:28:38 +0000 (-0600) Subject: Set errno to EISDIR instead of ENOTDIR if directory is writable X-Git-Tag: SUDO_1_8_15^2~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9ecf12daa72bf24f22e49fa9a1df81f82ea68091;p=sudo Set errno to EISDIR instead of ENOTDIR if directory is writable since ENOTDIR can be a legitimate errno. This avoids a bogus "directory is writable" error in that case. --- diff --git a/src/sudo_edit.c b/src/sudo_edit.c index 6a2cec564..b49d90bc9 100644 --- a/src/sudo_edit.c +++ b/src/sudo_edit.c @@ -289,7 +289,7 @@ sudo_edit_open_nonwritable(char *path, int oflags, mode_t mode) if (dir_is_writable(&sb, user_details.uid, user_details.gid, user_details.ngroups, user_details.groups)) { close(dfd); - errno = ENOTDIR; + errno = EISDIR; debug_return_int(-1); } @@ -418,7 +418,7 @@ sudo_edit_create_tfiles(struct command_details *command_details, if (ofd == -1 && errno == ELOOP) { sudo_warnx(U_("%s: editing symbolic links is not permitted"), files[i]); - } else if (ofd == -1 && errno == ENOTDIR) { + } else if (ofd == -1 && errno == EISDIR) { sudo_warnx(U_("%s: editing files in a writable directory is not permitted"), files[i]); } else {