summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2011-11-04 10:51:29 -0700
committerJeremy Allison <jra@samba.org>2011-11-05 01:38:00 +0100
commit28984858486b9e61142afd3d34ae1e822e0ccef1 (patch)
tree5f435f130e3a8a8a817b9ce63c8dd2d695875272
parent7ff5a5584f7d299be1c46bd881adf3ebc27a2a20 (diff)
downloadsamba-28984858486b9e61142afd3d34ae1e822e0ccef1.tar.gz
samba-28984858486b9e61142afd3d34ae1e822e0ccef1.tar.bz2
samba-28984858486b9e61142afd3d34ae1e822e0ccef1.zip
Move the SEC_DIR_LIST check into dptr_create for SMB2 and now for SMB1.
The pathname check still needs fixing. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Sat Nov 5 01:38:00 CET 2011 on sn-devel-104
-rw-r--r--source3/smbd/dir.c6
-rw-r--r--source3/smbd/smb2_find.c5
2 files changed, 6 insertions, 5 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 8af0dad8c3..a11c131b49 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -444,6 +444,12 @@ NTSTATUS dptr_create(connection_struct *conn, files_struct *fsp,
}
if (fsp) {
+ if (!(fsp->access_mask & SEC_DIR_LIST)) {
+ DEBUG(5,("dptr_create: directory %s "
+ "not open for LIST access\n",
+ path));
+ return NT_STATUS_ACCESS_DENIED;
+ }
dir_hnd = OpenDir_fsp(NULL, conn, fsp, wcard, attr);
} else {
dir_hnd = OpenDir(NULL, conn, path, wcard, attr);
diff --git a/source3/smbd/smb2_find.c b/source3/smbd/smb2_find.c
index e64db24d02..6369e7fdbe 100644
--- a/source3/smbd/smb2_find.c
+++ b/source3/smbd/smb2_find.c
@@ -323,11 +323,6 @@ static struct tevent_req *smbd_smb2_find_send(TALLOC_CTX *mem_ctx,
if (fsp->dptr == NULL) {
bool wcard_has_wild;
- if (!(fsp->access_mask & SEC_DIR_LIST)) {
- tevent_req_nterror(req, NT_STATUS_ACCESS_DENIED);
- return tevent_req_post(req, ev);
- }
-
wcard_has_wild = ms_has_wild(in_file_name);
status = dptr_create(conn,