summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/client/client.c3
-rw-r--r--source3/include/proto.h3
-rw-r--r--source3/lib/util.c12
-rw-r--r--source3/smbd/reply.c7
-rw-r--r--source3/smbd/trans2.c3
5 files changed, 18 insertions, 10 deletions
diff --git a/source3/client/client.c b/source3/client/client.c
index 6773e6d90a..7cbaa81d52 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -472,7 +472,8 @@ static bool do_this_one(file_info *finfo)
}
if (*client_get_fileselection() &&
- !mask_match(finfo->name,client_get_fileselection(),false)) {
+ !mask_match(finfo->name, client_get_fileselection(),
+ get_Protocol(), false)) {
DEBUG(3,("mask_match %s failed\n", finfo->name));
return false;
}
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 92cb99744b..3399965043 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1188,7 +1188,8 @@ bool parent_dirname(TALLOC_CTX *mem_ctx, const char *dir, char **parent,
const char **name);
bool ms_has_wild(const char *s);
bool ms_has_wild_w(const smb_ucs2_t *s);
-bool mask_match(const char *string, const char *pattern, bool is_case_sensitive);
+bool mask_match(const char *string, const char *pattern,
+ enum protocol_types proto, bool is_case_sensitive);
bool mask_match_search(const char *string, const char *pattern, bool is_case_sensitive);
bool mask_match_list(const char *string, char **list, int listLen, bool is_case_sensitive);
bool unix_wild_match(const char *pattern, const char *string);
diff --git a/source3/lib/util.c b/source3/lib/util.c
index e0b09c4f1f..e3ceea4951 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -1687,7 +1687,8 @@ bool is_in_path(const char *name, name_compare_entry *namelist, bool case_sensit
for(; namelist->name != NULL; namelist++) {
if(namelist->is_wild) {
- if (mask_match(last_component, namelist->name, case_sensitive)) {
+ if (mask_match(last_component, namelist->name,
+ get_Protocol(), case_sensitive)) {
DEBUG(8,("is_in_path: mask match succeeded\n"));
return True;
}
@@ -2384,14 +2385,16 @@ bool ms_has_wild_w(const smb_ucs2_t *s)
of the ".." name.
*******************************************************************/
-bool mask_match(const char *string, const char *pattern, bool is_case_sensitive)
+bool mask_match(const char *string, const char *pattern,
+ enum protocol_types proto, bool is_case_sensitive)
{
if (ISDOTDOT(string))
string = ".";
if (ISDOT(pattern))
return False;
- return ms_fnmatch(pattern, string, Protocol <= PROTOCOL_LANMAN2, is_case_sensitive) == 0;
+ return ms_fnmatch(pattern, string, proto <= PROTOCOL_LANMAN2,
+ is_case_sensitive) == 0;
}
/*******************************************************************
@@ -2418,7 +2421,8 @@ bool mask_match_search(const char *string, const char *pattern, bool is_case_sen
bool mask_match_list(const char *string, char **list, int listLen, bool is_case_sensitive)
{
while (listLen-- > 0) {
- if (mask_match(string, *list++, is_case_sensitive))
+ if (mask_match(string, *list++, get_Protocol(),
+ is_case_sensitive))
return True;
}
return False;
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 682f56ff33..a113a9d982 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -2638,7 +2638,7 @@ NTSTATUS unlink_internals(connection_struct *conn, struct smb_request *req,
continue;
}
- if(!mask_match(dname, fname_mask,
+ if(!mask_match(dname, fname_mask, get_Protocol(),
conn->case_sensitive)) {
TALLOC_FREE(frame);
TALLOC_FREE(talloced);
@@ -6337,7 +6337,8 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
continue;
}
- if(!mask_match(dname, fname_src_mask, conn->case_sensitive)) {
+ if(!mask_match(dname, fname_src_mask, get_Protocol(),
+ conn->case_sensitive)) {
TALLOC_FREE(talloced);
continue;
}
@@ -6968,7 +6969,7 @@ void reply_copy(struct smb_request *req)
continue;
}
- if(!mask_match(dname, fname_src_mask,
+ if(!mask_match(dname, fname_src_mask, get_Protocol(),
conn->case_sensitive)) {
TALLOC_FREE(talloced);
continue;
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 17ebd81313..8226b6c428 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -1368,7 +1368,7 @@ static bool smbd_dirptr_lanman2_match_fn(TALLOC_CTX *ctx,
fname, mask);
state->got_exact_match = got_match;
if (!got_match) {
- got_match = mask_match(fname, mask,
+ got_match = mask_match(fname, mask, get_Protocol(),
state->conn->case_sensitive);
}
@@ -1393,6 +1393,7 @@ static bool smbd_dirptr_lanman2_match_fn(TALLOC_CTX *ctx,
state->got_exact_match = got_match;
if (!got_match) {
got_match = mask_match(mangled_name, mask,
+ get_Protocol(),
state->conn->case_sensitive);
}
}