From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Wed, 14 Feb 2018 22:22:20 +0100 The kfree() function was called in one case by the do_shash() function during error handling even if the passed variable contained a null pointer. * Reorder two function calls at the end. * Add a jump target. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- drivers/crypto/bcm/util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/bcm/util.c b/drivers/crypto/bcm/util.c index a912c6ad3e85..c141a0242223 100644 --- a/drivers/crypto/bcm/util.c +++ b/drivers/crypto/bcm/util.c @@ -279,7 +279,7 @@ int do_shash(unsigned char *name, unsigned char *result, sdesc = kmalloc(size, GFP_KERNEL); if (!sdesc) { rc = -ENOMEM; - goto do_shash_err; + goto free_shash; } sdesc->shash.tfm = hash; sdesc->shash.flags = 0x0; @@ -314,9 +314,9 @@ int do_shash(unsigned char *name, unsigned char *result, pr_err("%s: Could not generate %s hash\n", __func__, name); do_shash_err: - crypto_free_shash(hash); kfree(sdesc); - +free_shash: + crypto_free_shash(hash); return rc; } -- 2.16.1