From: Jeff Layton Date: Wed, 24 Sep 2008 15:32:59 +0000 (-0400) Subject: cifs: explicitly revoke SPNEGO key after session setup X-Git-Tag: v2.6.28-rc1~718^2~4 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=dfd15c46a6c2cafb006183c0c14f07e59eee4ac0;p=~emulex%2Finfiniband.git cifs: explicitly revoke SPNEGO key after session setup cifs: explicitly revoke SPNEGO key after session setup The SPNEGO blob returned by an upcall can only be used once. Explicitly revoke it to make sure that we never pick it up again after session setup exits. This doesn't seem to be that big an issue on more recent kernels, but older kernels seem to link keys into the session keyring by default. That said, explicitly revoking the key seems like a reasonable thing to do here. Signed-off-by: Jeff Layton Signed-off-by: Steve French --- diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c index 252fdc0567f..2851d5da0c8 100644 --- a/fs/cifs/sess.c +++ b/fs/cifs/sess.c @@ -624,8 +624,10 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time, ses, nls_cp); ssetup_exit: - if (spnego_key) + if (spnego_key) { + key_revoke(spnego_key); key_put(spnego_key); + } kfree(str_area); if (resp_buf_type == CIFS_SMALL_BUFFER) { cFYI(1, ("ssetup freeing small buf %p", iov[0].iov_base));