diff options
author | Jeremy Allison <jra@samba.org> | 2016-12-19 12:35:32 -0800 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2017-03-23 19:10:19 +0100 |
commit | 49ed0b01d1310f09e321122effed571b8ba852cb (patch) | |
tree | 38108ac503cc3d7af18631665d5aa63b053836b5 /source3/smbd/dir.c | |
parent | f6dfdf7d31967076dbd51ceb35145d28381a6f92 (diff) | |
download | samba-49ed0b01d1310f09e321122effed571b8ba852cb.tar.gz |
CVE-2017-2619: s3: smbd: Correctly fallback to open_dir_safely if FDOPENDIR not supported on system.
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>
Diffstat (limited to 'source3/smbd/dir.c')
-rw-r--r-- | source3/smbd/dir.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index 2fd50850665..1348d12298c 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -1797,20 +1797,15 @@ static struct smb_Dir *OpenDir_fsp(TALLOC_CTX *mem_ctx, connection_struct *conn, } if (dirp->dir == NULL) { - /* FDOPENDIR didn't work. Use OPENDIR instead. */ - dirp->dir = SMB_VFS_OPENDIR(conn, - dirp->dir_smb_fname, + /* FDOPENDIR is not supported. Use OPENDIR instead. */ + TALLOC_FREE(dirp); + return open_dir_safely(mem_ctx, + conn, + fsp->fsp_name, mask, attr); } - if (!dirp->dir) { - DEBUG(5,("OpenDir_fsp: Can't open %s. %s\n", - dirp->dir_smb_fname->base_name, - strerror(errno) )); - goto fail; - } - if (sconn && !sconn->using_smb2) { sconn->searches.dirhandles_open++; } |