Message ID | 20240706065008.451441-1-cuigaosheng1@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [-next] gss_krb5: Fix the error handling path for crypto_sync_skcipher_setkey | expand |
On Sat, Jul 06, 2024 at 02:50:08PM +0800, Gaosheng Cui wrote: > If we fail to call crypto_sync_skcipher_setkey, we should free the > memory allocation for cipher, replace err_return with err_free_cipher > to free the memory of cipher. > > Fixes: 4891f2d008e4 ("gss_krb5: import functionality to derive keys into the kernel") > Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> Reviewed-by: Simon Horman <horms@kernel.org>
On Sat, Jul 06, 2024 at 02:50:08PM +0800, Gaosheng Cui wrote: > If we fail to call crypto_sync_skcipher_setkey, we should free the > memory allocation for cipher, replace err_return with err_free_cipher > to free the memory of cipher. > > Fixes: 4891f2d008e4 ("gss_krb5: import functionality to derive keys into the kernel") > Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> > --- > net/sunrpc/auth_gss/gss_krb5_keys.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/sunrpc/auth_gss/gss_krb5_keys.c b/net/sunrpc/auth_gss/gss_krb5_keys.c > index 06d8ee0db000..4eb19c3a54c7 100644 > --- a/net/sunrpc/auth_gss/gss_krb5_keys.c > +++ b/net/sunrpc/auth_gss/gss_krb5_keys.c > @@ -168,7 +168,7 @@ static int krb5_DK(const struct gss_krb5_enctype *gk5e, > goto err_return; > blocksize = crypto_sync_skcipher_blocksize(cipher); > if (crypto_sync_skcipher_setkey(cipher, inkey->data, inkey->len)) > - goto err_return; > + goto err_free_cipher; > > ret = -ENOMEM; > inblockdata = kmalloc(blocksize, gfp_mask); > -- > 2.25.1 > Anna, Trond, would you like me to take this through the NFSD tree?
On Mon, Jul 8, 2024 at 10:52 AM Chuck Lever <chuck.lever@oracle.com> wrote: > > On Sat, Jul 06, 2024 at 02:50:08PM +0800, Gaosheng Cui wrote: > > If we fail to call crypto_sync_skcipher_setkey, we should free the > > memory allocation for cipher, replace err_return with err_free_cipher > > to free the memory of cipher. > > > > Fixes: 4891f2d008e4 ("gss_krb5: import functionality to derive keys into the kernel") > > Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> > > --- > > net/sunrpc/auth_gss/gss_krb5_keys.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/net/sunrpc/auth_gss/gss_krb5_keys.c b/net/sunrpc/auth_gss/gss_krb5_keys.c > > index 06d8ee0db000..4eb19c3a54c7 100644 > > --- a/net/sunrpc/auth_gss/gss_krb5_keys.c > > +++ b/net/sunrpc/auth_gss/gss_krb5_keys.c > > @@ -168,7 +168,7 @@ static int krb5_DK(const struct gss_krb5_enctype *gk5e, > > goto err_return; > > blocksize = crypto_sync_skcipher_blocksize(cipher); > > if (crypto_sync_skcipher_setkey(cipher, inkey->data, inkey->len)) > > - goto err_return; > > + goto err_free_cipher; > > > > ret = -ENOMEM; > > inblockdata = kmalloc(blocksize, gfp_mask); > > -- > > 2.25.1 > > > > Anna, Trond, would you like me to take this through the NFSD tree? Sure! That sounds good to me. Anna > > -- > Chuck Lever
diff --git a/net/sunrpc/auth_gss/gss_krb5_keys.c b/net/sunrpc/auth_gss/gss_krb5_keys.c index 06d8ee0db000..4eb19c3a54c7 100644 --- a/net/sunrpc/auth_gss/gss_krb5_keys.c +++ b/net/sunrpc/auth_gss/gss_krb5_keys.c @@ -168,7 +168,7 @@ static int krb5_DK(const struct gss_krb5_enctype *gk5e, goto err_return; blocksize = crypto_sync_skcipher_blocksize(cipher); if (crypto_sync_skcipher_setkey(cipher, inkey->data, inkey->len)) - goto err_return; + goto err_free_cipher; ret = -ENOMEM; inblockdata = kmalloc(blocksize, gfp_mask);
If we fail to call crypto_sync_skcipher_setkey, we should free the memory allocation for cipher, replace err_return with err_free_cipher to free the memory of cipher. Fixes: 4891f2d008e4 ("gss_krb5: import functionality to derive keys into the kernel") Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> --- net/sunrpc/auth_gss/gss_krb5_keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)