From 1e4b0268aa3b5021b72c17d54c846e575952e625 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 10 Jul 1998 20:03:09 +0000 Subject: Fix for bug PR#8294 reported by - 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 | 2 +- source3/smbd/server.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/source3/lib/util.c b/source3/lib/util.c index 750ca0f3ab..2bd7636fb0 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -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(); } } diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 300e8d28e8..e167941ccb 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -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; /* -- cgit