summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-09-26 03:49:25 +0000
committerJeremy Allison <jra@samba.org>1998-09-26 03:49:25 +0000
commita377543cc0af26ddcaf58aa4bc368afd70bca5ec (patch)
tree076cc6cd9002bbbfdf4b0cc5176c3770d0162753 /source3/smbd
parentb053652d490c8b37084797a64f14cdd44ff82578 (diff)
downloadsamba-a377543cc0af26ddcaf58aa4bc368afd70bca5ec.tar.gz
samba-a377543cc0af26ddcaf58aa4bc368afd70bca5ec.tar.bz2
samba-a377543cc0af26ddcaf58aa4bc368afd70bca5ec.zip
Fixed the problem with reply_getatr() being passed a "" name in reply_getatr,
replaced the paranoid code in smbd/filename.c that replaces a "" with a ".". I am starting to think this code may well be needed. Jeremy. (This used to be commit bdc3d9f52fbded4b1483af8be0059decfd4bad34)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/filename.c3
-rw-r--r--source3/smbd/reply.c18
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)
{