summaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorSteve French <smfrench@austin.rr.com>2005-04-30 20:10:57 +0200
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-30 20:10:57 +0200
commit68575476718ed1c6d6ddafeec8310b109e7a7a7f (patch)
tree6f2a6107859521b5f6b498aa50421cf0d0aebb7a /fs/cifs
parent[PATCH] ppc64: fix 32-bit signal frame back link (diff)
downloadlinux-68575476718ed1c6d6ddafeec8310b109e7a7a7f.tar.xz
linux-68575476718ed1c6d6ddafeec8310b109e7a7a7f.zip
[PATCH] cifs: append \* properly on ASCII servers
For older servers which do not support Unicode Signed-off-by: Steve French (sfrench@us.ibm.com) Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/cifs')
-rw-r--r--fs/cifs/CHANGES4
-rw-r--r--fs/cifs/cifssmb.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index 4d2404305ab6..95483baab706 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -4,7 +4,9 @@ Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
Do not oops if root user kills cifs oplock kernel thread or
kills the cifsd thread (NB: killing the cifs kernel threads is not
recommended, unmount and rmmod cifs will kill them when they are
-no longer needed).
+no longer needed). Fix readdir to ASCII servers (ie older servers
+which do not support Unicode) and also require asterik.
+
Version 1.33
------------
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index b004fef0a42b..741ff0c69f37 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -2451,12 +2451,14 @@ findFirstRetry:
name_len += 2;
} else { /* BB add check for overrun of SMB buf BB */
name_len = strnlen(searchName, PATH_MAX);
- name_len++; /* trailing null */
/* BB fix here and in unicode clause above ie
if(name_len > buffersize-header)
free buffer exit; BB */
strncpy(pSMB->FileName, searchName, name_len);
- pSMB->FileName[name_len] = 0; /* just in case */
+ pSMB->FileName[name_len] = '\\';
+ pSMB->FileName[name_len+1] = '*';
+ pSMB->FileName[name_len+2] = 0;
+ name_len += 3;
}
params = 12 + name_len /* includes null */ ;