summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2016-12-19 16:25:26 -0800
committerKarolin Seeger <kseeger@samba.org>2017-03-22 10:48:05 +0100
commit039eb4a36aca5ead9ccb8a0a6199c2c21ab062df (patch)
tree274ba62dbb3063681a5b8912442c7af7b3295993
parent92f17bb087fb3a25cc1f4de821051f93a3a66481 (diff)
downloadsamba-039eb4a36aca5ead9ccb8a0a6199c2c21ab062df.tar.gz
CVE-2017-2619: s3: smbd: Opendir_internal() early return if SMB_VFS_OPENDIR failed.
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/dir.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index b22d92d7ba9..a5d172a86e1 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -1643,6 +1643,15 @@ static struct smb_Dir *OpenDir_internal(TALLOC_CTX *mem_ctx,
return NULL;
}
+ dirp->dir = SMB_VFS_OPENDIR(conn, smb_dname, mask, attr);
+
+ if (!dirp->dir) {
+ DEBUG(5,("OpenDir: Can't open %s. %s\n",
+ smb_dname->base_name,
+ strerror(errno) ));
+ goto fail;
+ }
+
dirp->conn = conn;
dirp->name_cache_size = lp_directory_name_cache_size(SNUM(conn));
@@ -1657,15 +1666,6 @@ static struct smb_Dir *OpenDir_internal(TALLOC_CTX *mem_ctx,
}
talloc_set_destructor(dirp, smb_Dir_destructor);
- dirp->dir = SMB_VFS_OPENDIR(conn, dirp->dir_smb_fname, mask, attr);
-
- if (!dirp->dir) {
- DEBUG(5,("OpenDir: Can't open %s. %s\n",
- dirp->dir_smb_fname->base_name,
- strerror(errno) ));
- goto fail;
- }
-
return dirp;
fail: