summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2016-12-15 12:52:13 -0800
committerKarolin Seeger <kseeger@samba.org>2017-03-22 10:48:06 +0100
commit52a1765f9c2cac77c8d94ddb0e42dd66cba53678 (patch)
tree37a4363ccbe7d61329e8ecff6923aca4ec5d94d1
parente413f14abdc26d2d214e06b5b4407b126a74ec4c (diff)
downloadsamba-52a1765f9c2cac77c8d94ddb0e42dd66cba53678.tar.gz
CVE-2017-2619: s3: smbd: Remove O_NOFOLLOW guards. We insist on O_NOFOLLOW existing.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12496 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org>
-rw-r--r--source3/smbd/open.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index f0a68c9d75c..9828c9981d5 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -366,8 +366,7 @@ NTSTATUS fd_open(struct connection_struct *conn,
struct smb_filename *smb_fname = fsp->fsp_name;
NTSTATUS status = NT_STATUS_OK;
-#ifdef O_NOFOLLOW
- /*
+ /*
* Never follow symlinks on a POSIX client. The
* client should be doing this.
*/
@@ -375,12 +374,10 @@ NTSTATUS fd_open(struct connection_struct *conn,
if ((fsp->posix_flags & FSP_POSIX_FLAGS_OPEN) || !lp_follow_symlinks(SNUM(conn))) {
flags |= O_NOFOLLOW;
}
-#endif
fsp->fh->fd = SMB_VFS_OPEN(conn, smb_fname, fsp, flags, mode);
if (fsp->fh->fd == -1) {
int posix_errno = errno;
-#ifdef O_NOFOLLOW
#if defined(ENOTSUP) && defined(OSF1)
/* handle special Tru64 errno */
if (errno == ENOTSUP) {
@@ -397,7 +394,6 @@ NTSTATUS fd_open(struct connection_struct *conn,
if (errno == EMLINK) {
posix_errno = ELOOP;
}
-#endif /* O_NOFOLLOW */
status = map_nt_error_from_unix(posix_errno);
if (errno == EMFILE) {
static time_t last_warned = 0L;