Message ID | 20160403010952.GA25687@gondor.apana.org.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sun, Apr 03, 2016 at 09:09:52AM +0800, Herbert Xu wrote: > On Sat, Apr 02, 2016 at 08:13:19PM -0400, J. Bruce Fields wrote: > > As of 3b5cf20c "sunrpc: Use skcipher and ahash/shash", I get a NULL > > dereference in krb5_encrypt on an NFS server when a client attempts to > > mount using krb5. I haven't tried to figure out what's going on beyond > > that.... > > Oops, looks like I missed a couple of set_tfm calls. Thanks. It's getting further now, but appears to be freezing later. Possibly unrelated. I'm travelling, and it'll be Monday or Wednesday till I can take another look. --b. > > ---8<-- > Subject: sunrpc: Add missing skcipher_request_set_tfm calls > > A couple of skcipher_request users were missing set_tfm calls which > leads to a crash when they are called. > > Fixes: 3b5cf20cf439 ("sunrpc: Use skcipher and ahash/shash") > Reported-by: J. Bruce Fields <bfields@fieldses.org> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> > > diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c > index d94a8e1..ccc59aa 100644 > --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c > +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c > @@ -78,6 +78,7 @@ krb5_encrypt( > memcpy(out, in, length); > sg_init_one(sg, out, length); > > + skcipher_request_set_tfm(req, tfm); > skcipher_request_set_callback(req, 0, NULL, NULL); > skcipher_request_set_crypt(req, sg, sg, length, local_iv); > > @@ -115,6 +116,7 @@ krb5_decrypt( > memcpy(out, in, length); > sg_init_one(sg, out, length); > > + skcipher_request_set_tfm(req, tfm); > skcipher_request_set_callback(req, 0, NULL, NULL); > skcipher_request_set_crypt(req, sg, sg, length, local_iv); > > -- > Email: Herbert Xu <herbert@gondor.apana.org.au> > Home Page: http://gondor.apana.org.au/~herbert/ > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c index d94a8e1..ccc59aa 100644 --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c @@ -78,6 +78,7 @@ krb5_encrypt( memcpy(out, in, length); sg_init_one(sg, out, length); + skcipher_request_set_tfm(req, tfm); skcipher_request_set_callback(req, 0, NULL, NULL); skcipher_request_set_crypt(req, sg, sg, length, local_iv); @@ -115,6 +116,7 @@ krb5_decrypt( memcpy(out, in, length); sg_init_one(sg, out, length); + skcipher_request_set_tfm(req, tfm); skcipher_request_set_callback(req, 0, NULL, NULL); skcipher_request_set_crypt(req, sg, sg, length, local_iv);