diff options
author | Steve French <sfrench@us.ibm.com> | 2006-05-30 14:04:19 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-05-30 14:04:19 -0400 |
commit | a878fb2218c87fe66f2bcf3914840e24c41338f7 (patch) | |
tree | 61d958f40abe8db8ef8cc2a34dcae4c7aea8fc64 /fs/cifs/connect.c | |
parent | fc94cdb94462e71a4a974bc9bc1f483189ae7805 (diff) |
[CIFS] Do not limit the length of share names (was 100 for whole UNC name)
during mount. Especially important for some non-Western languages.
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index d2ec806a4f32..105544b0a275 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -3282,7 +3282,8 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | |||
3282 | bcc_ptr++; /* align */ | 3282 | bcc_ptr++; /* align */ |
3283 | } | 3283 | } |
3284 | 3284 | ||
3285 | if(ses->server->secMode & (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) | 3285 | if(ses->server->secMode & |
3286 | (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) | ||
3286 | smb_buffer->Flags2 |= SMBFLG2_SECURITY_SIGNATURE; | 3287 | smb_buffer->Flags2 |= SMBFLG2_SECURITY_SIGNATURE; |
3287 | 3288 | ||
3288 | if (ses->capabilities & CAP_STATUS32) { | 3289 | if (ses->capabilities & CAP_STATUS32) { |
@@ -3294,8 +3295,10 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | |||
3294 | if (ses->capabilities & CAP_UNICODE) { | 3295 | if (ses->capabilities & CAP_UNICODE) { |
3295 | smb_buffer->Flags2 |= SMBFLG2_UNICODE; | 3296 | smb_buffer->Flags2 |= SMBFLG2_UNICODE; |
3296 | length = | 3297 | length = |
3297 | cifs_strtoUCS((__le16 *) bcc_ptr, tree, 100, nls_codepage); | 3298 | cifs_strtoUCS((__le16 *) bcc_ptr, tree, |
3298 | bcc_ptr += 2 * length; /* convert num of 16 bit words to bytes */ | 3299 | 6 /* max utf8 char length in bytes */ * |
3300 | (/* server len*/ + 256 /* share len */), nls_codepage); | ||
3301 | bcc_ptr += 2 * length; /* convert num 16 bit words to bytes */ | ||
3299 | bcc_ptr += 2; /* skip trailing null */ | 3302 | bcc_ptr += 2; /* skip trailing null */ |
3300 | } else { /* ASCII */ | 3303 | } else { /* ASCII */ |
3301 | strcpy(bcc_ptr, tree); | 3304 | strcpy(bcc_ptr, tree); |