1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-08 04:58:40 +03:00

s3: Make the implicit reference to Protocol in mask_match() explicit

This commit is contained in:
Volker Lendecke 2009-11-21 19:04:34 +01:00
parent b2db4c5162
commit e23d8a3d1f
5 changed files with 18 additions and 10 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}