summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_search.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/ntvfs/posix/pvfs_search.c')
-rw-r--r--source4/ntvfs/posix/pvfs_search.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source4/ntvfs/posix/pvfs_search.c b/source4/ntvfs/posix/pvfs_search.c
index 1464609e98..ff9ad20b43 100644
--- a/source4/ntvfs/posix/pvfs_search.c
+++ b/source4/ntvfs/posix/pvfs_search.c
@@ -54,7 +54,7 @@ static NTSTATUS fill_search_info(struct pvfs_state *pvfs,
return status;
}
- if (!pvfs_match_attrib(pvfs, name, search->search_attrib)) {
+ if (!pvfs_match_attrib(pvfs, name, search->search_attrib, search->must_attrib)) {
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
}
@@ -296,7 +296,8 @@ static NTSTATUS pvfs_search_first_old(struct ntvfs_module_context *ntvfs,
search->handle = id;
search->dir = dir;
search->current_index = 0;
- search->search_attrib = search_attrib;
+ search->search_attrib = search_attrib & 0xFF;
+ search->must_attrib = (search_attrib>>8) & 0xFF;
talloc_set_destructor(search, pvfs_search_destructor);
@@ -425,6 +426,7 @@ NTSTATUS pvfs_search_first(struct ntvfs_module_context *ntvfs,
search->dir = dir;
search->current_index = 0;
search->search_attrib = search_attrib;
+ search->must_attrib = 0;
talloc_set_destructor(search, pvfs_search_destructor);