Fix for bug PR#8294 reported by <detlef.lammermann@er.materna.de>
authorJeremy Allison <jra@samba.org>
Fri, 10 Jul 1998 20:03:09 +0000 (20:03 +0000)
committerJeremy Allison <jra@samba.org>
Fri, 10 Jul 1998 20:03:09 +0000 (20:03 +0000)
- the Files array was storing the 'dos_to_unix' translated name,
rather than the untranslated name. This could case problems when
the name was run through dos_to_unix again.
Jeremy.
(This used to be commit 5f4be1498f7c907a539fe9b5998dfbcaa9e20e20)

source3/lib/util.c
source3/smbd/server.c

index 750ca0f3ab4b91fa174b40ef52c142a60e80b5f8..2bd7636fb068e228e0fc1dd0e84ae1802680098a 100644 (file)
@@ -234,7 +234,7 @@ static void check_log_size(void)
       pstring name;
       fclose(dbf); dbf = NULL;
       slprintf(name,sizeof(name)-1,"%s.old",debugf);
-      sys_rename(debugf,name);
+      rename(debugf,name);
       reopen_logs();
     }
   }
index 300e8d28e8031835d75c658ef5fc87dac8804cbc..e167941ccb3565c34d048c132379e427ab359adb 100644 (file)
@@ -1512,7 +1512,14 @@ static void open_file(int fnum,int cnum,char *fname1,int flags,int mode, struct
     fsp->granted_oplock = False;
     fsp->sent_oplock_break = False;
     fsp->cnum = cnum;
-    string_set(&fsp->name,dos_to_unix(fname,False));
+    /*
+     * Note that the file name here is the *untranslated* name
+     * ie. it is still in the DOS codepage sent from the client.
+     * All use of this filename will pass though the sys_xxxx
+     * functions which will do the dos_to_unix translation before
+     * mapping into a UNIX filename. JRA.
+     */
+    string_set(&fsp->name,fname);
     fsp->wbmpx_ptr = NULL;      
 
     /*