Merged Andrew's wfw fix (2).
authorJeremy Allison <jra@samba.org>
Tue, 17 Apr 2001 07:09:42 +0000 (07:09 +0000)
committerJeremy Allison <jra@samba.org>
Tue, 17 Apr 2001 07:09:42 +0000 (07:09 +0000)
Jeremy.
(This used to be commit a4fb755a48d27f21bd0a5d9e9d1227a08c13bdff)

source3/lib/ms_fnmatch.c

index c4ebaf6aa2722f3945386b0406fbe0913868785d..b4591c7dbc4c55480c0e6dbfec2140fcf067fa4c 100644 (file)
@@ -47,27 +47,30 @@ static int ms_fnmatch_lanman_core(char *pattern, char *string)
        while ((c = *p++)) {
                switch (c) {
                case '.':
+                       if (! *n) goto next;
                        /* if (! *n && ! *p) goto match; */
                        if (*n != '.') goto nomatch;
                        n++;
                        break;
 
                case '?':
+                       if (! *n) goto next;
                        if ((*n == '.' && n[1] != '.') || ! *n) goto next;
                        n++;
                        break;
 
                case '>':
+                       if (! *n) goto next;
                        if (n[0] == '.') {
                                if (! n[1] && ms_fnmatch_lanman_core(p, n+1) == 0) goto match;
                                if (ms_fnmatch_lanman_core(p, n) == 0) goto match;
                                goto nomatch;
                        }
-                       if (! *n) goto next;
                        n++;
                        break;
 
                case '*':
+                       if (! *n) goto next;
                        if (! *p) goto match;
                        for (; *n; n++) {
                                if (ms_fnmatch_lanman_core(p, n) == 0) goto match;
@@ -119,7 +122,7 @@ static int ms_fnmatch_lanman1(char *pattern, char *string)
 {
        if (!strpbrk(pattern, "?*<>\"")) {
                if (strcmp(string,"..") == 0) string = ".";
-               return strcmp(pattern, string);
+               return strcasecmp(pattern, string);
        }
 
        if (strcmp(string,"..") == 0 || strcmp(string,".") == 0) {