diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/filename.c | 3 | ||||
-rw-r--r-- | source3/smbd/reply.c | 18 |
2 files changed, 10 insertions, 11 deletions
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index 685725f096..7cbb3392cb 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -366,8 +366,6 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component, trim_string(name,"/","/"); - /* I've disabled this till we fix printing (probably a getatr problem) (tridge) */ -#if TRIM_NULL_NAMES /* * If we trimmed down to a single '\0' character * then we should use the "." directory to avoid @@ -378,7 +376,6 @@ BOOL unix_convert(char *name,connection_struct *conn,char *saved_last_component, name[0] = '.'; name[1] = '\0'; } -#endif /* * Ensure saved_last_component is valid even if file exists. diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 63bbcbcdba..12a39589d6 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -812,19 +812,20 @@ int reply_getatr(connection_struct *conn, char *inbuf,char *outbuf, int dum_size BOOL bad_path = False; pstrcpy(fname,smb_buf(inbuf) + 1); - unix_convert(fname,conn,0,&bad_path,&sbuf); /* dos smetimes asks for a stat of "" - it returns a "hidden directory" under WfWg - weird! */ if (! (*fname)) - { - mode = aHIDDEN | aDIR; - if (!CAN_WRITE(conn)) mode |= aRONLY; - size = 0; - mtime = 0; - ok = True; - } + { + mode = aHIDDEN | aDIR; + if (!CAN_WRITE(conn)) mode |= aRONLY; + size = 0; + mtime = 0; + ok = True; + } else + { + unix_convert(fname,conn,0,&bad_path,&sbuf); if (check_name(fname,conn)) { if (VALID_STAT(sbuf) || dos_stat(fname,&sbuf) == 0) @@ -839,6 +840,7 @@ int reply_getatr(connection_struct *conn, char *inbuf,char *outbuf, int dum_size else DEBUG(3,("stat of %s failed (%s)\n",fname,strerror(errno))); } + } if (!ok) { |