summaryrefslogtreecommitdiff
path: root/source3/smbd/dir.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-08-06 21:16:38 +0200
committerStefan Metzmacher <metze@samba.org>2009-08-07 11:10:52 +0200
commit8e419aab48ace1fe0d075e2a25935e650805a23c (patch)
tree89b01e057ef26c6779b85f2ae1c468046c840d38 /source3/smbd/dir.c
parent5b50e506d010c0c3fc15c1ecaef7aa9e5383691c (diff)
downloadsamba-8e419aab48ace1fe0d075e2a25935e650805a23c.tar.gz
samba-8e419aab48ace1fe0d075e2a25935e650805a23c.tar.bz2
samba-8e419aab48ace1fe0d075e2a25935e650805a23c.zip
s3:smbd: don't ignore check_descend in get_dir_entry()
metze
Diffstat (limited to 'source3/smbd/dir.c')
-rw-r--r--source3/smbd/dir.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 642fb09362..7acd349b72 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -875,6 +875,7 @@ bool get_dir_entry(TALLOC_CTX *ctx,
if ((strcmp(mask,"*.*") == 0) ||
mask_match_search(filename,mask,False) ||
mangle_mask_match(conn,filename,mask)) {
+ bool isdots = (ISDOT(dname) || ISDOTDOT(dname));
char mname[13];
struct smb_filename *smb_fname = NULL;
NTSTATUS status;
@@ -891,6 +892,11 @@ bool get_dir_entry(TALLOC_CTX *ctx,
}
}
+ if (check_descend && !isdots) {
+ TALLOC_FREE(filename);
+ continue;
+ }
+
if (needslash) {
pathreal = talloc_asprintf(ctx,
"%s/%s",