s3: Make the implicit reference to Protocol in mask_match() explicit
authorVolker Lendecke <vl@samba.org>
Sat, 21 Nov 2009 18:04:34 +0000 (19:04 +0100)
committerVolker Lendecke <vl@samba.org>
Sat, 21 Nov 2009 19:49:16 +0000 (20:49 +0100)
source3/client/client.c
source3/include/proto.h
source3/lib/util.c
source3/smbd/reply.c
source3/smbd/trans2.c

index 6773e6d90a795213a19eba57ddc5718a5eaed40f..7cbaa81d5290811f191422e0b2aeb693f49c0ad0 100644 (file)
@@ -472,7 +472,8 @@ static bool do_this_one(file_info *finfo)
        }
 
        if (*client_get_fileselection() &&
        }
 
        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;
        }
                DEBUG(3,("mask_match %s failed\n", finfo->name));
                return false;
        }
index 92cb99744b6be4361a240dfab01e3acf64119218..33999650438725c056abf5b1ad757d3f0b13c4e4 100644 (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);
                    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);
 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);
index e0b09c4f1fa91396ab8e4fa2e505cba007482598..e3ceea495172a89eeb416e6a73bdaeb0e940743c 100644 (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) {
 
        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;
                        }
                                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.
 *******************************************************************/
 
  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;
 
 {
        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) {
 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;
                        return True;
        }
        return False;
index 682f56ff33e834c0dc94d2b42b140d387f10af27..a113a9d98261487873ab536da695238cec431073 100644 (file)
@@ -2638,7 +2638,7 @@ NTSTATUS unlink_internals(connection_struct *conn, struct smb_request *req,
                                continue;
                        }
 
                                continue;
                        }
 
-                       if(!mask_match(dname, fname_mask,
+                       if(!mask_match(dname, fname_mask, get_Protocol(),
                                       conn->case_sensitive)) {
                                TALLOC_FREE(frame);
                                TALLOC_FREE(talloced);
                                       conn->case_sensitive)) {
                                TALLOC_FREE(frame);
                                TALLOC_FREE(talloced);
@@ -6337,7 +6337,8 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
                        continue;
                }
 
                        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;
                }
                        TALLOC_FREE(talloced);
                        continue;
                }
@@ -6968,7 +6969,7 @@ void reply_copy(struct smb_request *req)
                                continue;
                        }
 
                                continue;
                        }
 
-                       if(!mask_match(dname, fname_src_mask,
+                       if(!mask_match(dname, fname_src_mask, get_Protocol(),
                                       conn->case_sensitive)) {
                                TALLOC_FREE(talloced);
                                continue;
                                       conn->case_sensitive)) {
                                TALLOC_FREE(talloced);
                                continue;
index 17ebd81313c137d907ae7b7ceaaa8e0f47019e55..8226b6c4280c9fd3b2ef0eb6590dbcef2aef6b6c 100644 (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) {
                                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);
        }
 
                                       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,
                state->got_exact_match = got_match;
                if (!got_match) {
                        got_match = mask_match(mangled_name, mask,
+                                              get_Protocol(),
                                               state->conn->case_sensitive);
                }
        }
                                               state->conn->case_sensitive);
                }
        }