summaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2007-12-31 04:03:02 +0000
committerSteve French <sfrench@us.ibm.com>2007-12-31 04:03:02 +0000
commit1a67570c76402b36695cd0725e28649ee8fe830d (patch)
tree77e71577106a8e0c2d2d61b032a8dd7437f3deb3 /fs/cifs
parent1d9a8852c365fb7f8db0f8364210138985f457b8 (diff)
downloadlinux-1a67570c76402b36695cd0725e28649ee8fe830d.tar.gz
linux-1a67570c76402b36695cd0725e28649ee8fe830d.tar.bz2
linux-1a67570c76402b36695cd0725e28649ee8fe830d.zip
[CIFS] use krb5 session key from first SMB session after a NegProt
Currently, any new kerberos SMB session overwrites the server's session key. The session key should only be set by the first SMB session set up on the socket. Signed-off-by: Jeff Layton <jlayton@tupile.poochiereds.net> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r--fs/cifs/sess.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index d0cb469daab7..ce698d5f6107 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -528,9 +528,11 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
rc = -EOVERFLOW;
goto ssetup_exit;
}
- ses->server->mac_signing_key.len = msg->sesskey_len;
- memcpy(ses->server->mac_signing_key.data.krb5, msg->data,
- msg->sesskey_len);
+ if (first_time) {
+ ses->server->mac_signing_key.len = msg->sesskey_len;
+ memcpy(ses->server->mac_signing_key.data.krb5,
+ msg->data, msg->sesskey_len);
+ }
pSMB->req.hdr.Flags2 |= SMBFLG2_EXT_SEC;
capabilities |= CAP_EXTENDED_SECURITY;
pSMB->req.Capabilities = cpu_to_le32(capabilities);