Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 201710
b: refs/heads/master
c: 4ff67b7
h: refs/heads/master
v: v3
  • Loading branch information
Jeff Layton authored and Steve French committed Aug 2, 2010
1 parent e4c4be2 commit be92496
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: daf5b0b6f3f6d7b15c2600426cc6c60a0e155218
refs/heads/master: 4ff67b720c02c36e54d55b88c2931879b7db1cd2
2 changes: 1 addition & 1 deletion trunk/fs/cifs/cifsglob.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
#define MAX_SHARE_SIZE 64 /* used to be 20, this should still be enough */
#define MAX_USERNAME_SIZE 32 /* 32 is to allow for 15 char names + null
termination then *2 for unicode versions */
#define MAX_PASSWORD_SIZE 16
#define MAX_PASSWORD_SIZE 512 /* max for windows seems to be 256 wide chars */

#define CIFS_MIN_RCV_POOL 4

Expand Down
26 changes: 18 additions & 8 deletions trunk/fs/cifs/connect.c
Original file line number Diff line number Diff line change
Expand Up @@ -1644,17 +1644,27 @@ cifs_get_tcp_session(struct smb_vol *volume_info)
}

static struct cifsSesInfo *
cifs_find_smb_ses(struct TCP_Server_Info *server, char *username)
cifs_find_smb_ses(struct TCP_Server_Info *server, struct smb_vol *vol)
{
struct list_head *tmp;
struct cifsSesInfo *ses;

write_lock(&cifs_tcp_ses_lock);
list_for_each(tmp, &server->smb_ses_list) {
ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list);
if (strncmp(ses->userName, username, MAX_USERNAME_SIZE))
continue;

list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) {
switch (server->secType) {
case Kerberos:
if (vol->linux_uid != ses->linux_uid)
continue;
break;
default:
/* anything else takes username/password */
if (strncmp(ses->userName, vol->username,
MAX_USERNAME_SIZE))
continue;
if (strlen(vol->username) != 0 &&
strncmp(ses->password, vol->password,
MAX_PASSWORD_SIZE))
continue;
}
++ses->ses_count;
write_unlock(&cifs_tcp_ses_lock);
return ses;
Expand Down Expand Up @@ -1696,7 +1706,7 @@ cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb_vol *volume_info)

xid = GetXid();

ses = cifs_find_smb_ses(server, volume_info->username);
ses = cifs_find_smb_ses(server, volume_info);
if (ses) {
cFYI(1, "Existing smb sess found (status=%d)", ses->status);

Expand Down

0 comments on commit be92496

Please sign in to comment.