]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
fixed a stat cache bug (the one found by Matthew Geier).
authorAndrew Tridgell <tridge@samba.org>
Sat, 5 Sep 1998 15:31:10 +0000 (15:31 +0000)
committerAndrew Tridgell <tridge@samba.org>
Sat, 5 Sep 1998 15:31:10 +0000 (15:31 +0000)
The fix I used is a very conservative fix. I'll leave it up to Jeremy
to put in a better fix. The problem was the detection of mangled
names.

source/smbd/filename.c

index 8b81d6df2a0d6ef243a97a018410eea3b5ac1124..ee9ce3f8350e7dfa07440a65d1d4efba942f5ed4 100644 (file)
@@ -331,6 +331,7 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component,
   int saved_errno;
   BOOL component_was_mangled = False;
   BOOL name_has_wildcard = False;
+  extern char magic_char;
 
   *dirpath = 0;
   *bad_path = False;
@@ -432,6 +433,10 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component,
   if(strchr(start,'?') || strchr(start,'*'))
     name_has_wildcard = True;
 
+  /* this is an extremely conservative test for mangled names. */
+  if (strchr(start,magic_char))
+    component_was_mangled = True;
+
   /* 
    * Now we need to recursively match the name against the real 
    * directory structure.
@@ -528,7 +533,6 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component,
            */
 
           if (is_mangled(start)) {
-            component_was_mangled = True;
             check_mangled_cache( start );
           }