summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/auth_gss/gss_krb5_mech.c
diff options
context:
space:
mode:
authorHerbert Xu2016-04-03 06:37:15 +0200
committerHerbert Xu2016-04-04 15:45:51 +0200
commitef609c238a8ea163cb0af759cc73c9e2555c89da (patch)
tree99fc4f1518315e72c089626567a07dfd964c78ef /net/sunrpc/auth_gss/gss_krb5_mech.c
parentLinux 4.6-rc2 (diff)
downloadkernel-qcow2-linux-ef609c238a8ea163cb0af759cc73c9e2555c89da.tar.gz
kernel-qcow2-linux-ef609c238a8ea163cb0af759cc73c9e2555c89da.tar.xz
kernel-qcow2-linux-ef609c238a8ea163cb0af759cc73c9e2555c89da.zip
sunrpc: Fix skcipher/shash conversion
The skcpiher/shash conversion introduced a number of bugs in the sunrpc code: 1) Missing calls to skcipher_request_set_tfm lead to crashes. 2) The allocation size of shash_desc is too small which leads to memory corruption. Fixes: 3b5cf20cf439 ("sunrpc: Use skcipher and ahash/shash") Reported-by: J. Bruce Fields <bfields@fieldses.org> Tested-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'net/sunrpc/auth_gss/gss_krb5_mech.c')
-rw-r--r--net/sunrpc/auth_gss/gss_krb5_mech.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/auth_gss/gss_krb5_mech.c b/net/sunrpc/auth_gss/gss_krb5_mech.c
index 71341ccb9890..65427492b1c9 100644
--- a/net/sunrpc/auth_gss/gss_krb5_mech.c
+++ b/net/sunrpc/auth_gss/gss_krb5_mech.c
@@ -451,7 +451,8 @@ context_derive_keys_rc4(struct krb5_ctx *ctx)
goto out_err_free_hmac;
- desc = kmalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac),
+ GFP_KERNEL);
if (!desc) {
dprintk("%s: failed to allocate hash descriptor for '%s'\n",
__func__, ctx->gk5e->cksum_name);