aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve French <smfrench@austin.rr.com>2005-04-30 14:10:57 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-30 14:10:57 -0400
commit68575476718ed1c6d6ddafeec8310b109e7a7a7f (patch)
tree6f2a6107859521b5f6b498aa50421cf0d0aebb7a
parent9747dd6fa98f2983f4dd09cd6dad1fa3d2a4c5f2 (diff)
[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>
-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.
4Do not oops if root user kills cifs oplock kernel thread or 4Do not oops if root user kills cifs oplock kernel thread or
5kills the cifsd thread (NB: killing the cifs kernel threads is not 5kills the cifsd thread (NB: killing the cifs kernel threads is not
6recommended, unmount and rmmod cifs will kill them when they are 6recommended, unmount and rmmod cifs will kill them when they are
7no longer needed). 7no longer needed). Fix readdir to ASCII servers (ie older servers
8which do not support Unicode) and also require asterik.
9
8 10
9Version 1.33 11Version 1.33
10------------ 12------------
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:
2451 name_len += 2; 2451 name_len += 2;
2452 } else { /* BB add check for overrun of SMB buf BB */ 2452 } else { /* BB add check for overrun of SMB buf BB */
2453 name_len = strnlen(searchName, PATH_MAX); 2453 name_len = strnlen(searchName, PATH_MAX);
2454 name_len++; /* trailing null */
2455/* BB fix here and in unicode clause above ie 2454/* BB fix here and in unicode clause above ie
2456 if(name_len > buffersize-header) 2455 if(name_len > buffersize-header)
2457 free buffer exit; BB */ 2456 free buffer exit; BB */
2458 strncpy(pSMB->FileName, searchName, name_len); 2457 strncpy(pSMB->FileName, searchName, name_len);
2459 pSMB->FileName[name_len] = 0; /* just in case */ 2458 pSMB->FileName[name_len] = '\\';
2459 pSMB->FileName[name_len+1] = '*';
2460 pSMB->FileName[name_len+2] = 0;
2461 name_len += 3;
2460 } 2462 }
2461 2463
2462 params = 12 + name_len /* includes null */ ; 2464 params = 12 + name_len /* includes null */ ;