diff options
author | Steve French <smfrench@austin.rr.com> | 2005-04-30 14:10:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-30 14:10:57 -0400 |
commit | 68575476718ed1c6d6ddafeec8310b109e7a7a7f (patch) | |
tree | 6f2a6107859521b5f6b498aa50421cf0d0aebb7a | |
parent | 9747dd6fa98f2983f4dd09cd6dad1fa3d2a4c5f2 (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/CHANGES | 4 | ||||
-rw-r--r-- | fs/cifs/cifssmb.c | 6 |
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. | |||
4 | Do not oops if root user kills cifs oplock kernel thread or | 4 | Do not oops if root user kills cifs oplock kernel thread or |
5 | kills the cifsd thread (NB: killing the cifs kernel threads is not | 5 | kills the cifsd thread (NB: killing the cifs kernel threads is not |
6 | recommended, unmount and rmmod cifs will kill them when they are | 6 | recommended, unmount and rmmod cifs will kill them when they are |
7 | no longer needed). | 7 | no longer needed). Fix readdir to ASCII servers (ie older servers |
8 | which do not support Unicode) and also require asterik. | ||
9 | |||
8 | 10 | ||
9 | Version 1.33 | 11 | Version 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 */ ; |