linux/drivers/crypto
Boris BREZILLON 7850c91b17 crypto: marvell/cesa - fix memory leak
Crypto requests are not guaranteed to be finalized (->final() call),
and can be freed at any moment, without getting any notification from
the core. This can lead to memory leaks of the ->cache buffer.

Make this buffer part of the request object, and allocate an extra buffer
from the DMA cache pool when doing DMA operations.

As a side effect, this patch also fixes another bug related to cache
allocation and DMA operations. When the core allocates a new request and
import an existing state, a cache buffer can be allocated (depending
on the state). The problem is, at that very moment, we don't know yet
whether the request will use DMA or not, and since everything is
likely to be initialized to zero, mv_cesa_ahash_alloc_cache() thinks it
should allocate a buffer for standard operation. But when
mv_cesa_ahash_free_cache() is called, req->type has been set to
CESA_DMA_REQ in the meantime, thus leading to an invalind dma_pool_free()
call (the buffer passed in argument has not been allocated from the pool).

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reported-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2016-03-17 19:09:04 +08:00
..
amcc crypto: amcc - check return value of sg_nents_for_len 2015-11-17 22:00:38 +08:00
caam crypto: caam - Staticize caam_jr_shutdown() 2016-02-17 04:07:52 +08:00
ccp crypto: ccp - fix lock acquisition code 2016-03-17 19:09:02 +08:00
marvell crypto: marvell/cesa - fix memory leak 2016-03-17 19:09:04 +08:00
nx crypto: nx-842 - Mask XERS0 bit in return value 2015-12-17 16:42:12 +08:00
qat crypto: qat - remove redundant arbiter configuration 2016-03-11 21:22:18 +08:00
qce crypto: qce - check return value of sg_nents_for_len 2015-11-17 22:00:36 +08:00
rockchip crypto: rockchip - add hash support for crypto engine in rk3288 2016-02-28 03:26:29 +08:00
sunxi-ss crypto: sunxi - don't print confusing data 2016-01-27 20:36:26 +08:00
ux500 crypto: ux500 - fix checks of error code returned by devm_ioremap_resource() 2016-03-11 21:19:20 +08:00
vmx powerpc updates for 4.5 2016-01-15 13:18:47 -08:00
atmel-aes-regs.h crypto: atmel-aes - add support to GCM mode 2015-12-23 18:19:58 +08:00
atmel-aes.c crypto: atmel - fix checks of error code returned by devm_ioremap_resource() 2016-03-11 21:19:19 +08:00
atmel-sha-regs.h crypto: atmel-sha - fix context switches 2016-01-25 22:42:07 +08:00
atmel-sha.c crypto: atmel - fix checks of error code returned by devm_ioremap_resource() 2016-03-11 21:19:19 +08:00
atmel-tdes-regs.h crypto: atmel-tdes - add support for latest release of the IP (0x700) 2013-03-10 16:46:42 +08:00
atmel-tdes.c crypto: atmel - fix checks of error code returned by devm_ioremap_resource() 2016-03-11 21:19:19 +08:00
bfin_crc.c crypto: bfin_crc - replace sg_count by sg_nents 2015-09-21 23:05:53 +08:00
bfin_crc.h crypto: bfin_crc - access crc registers by readl and writel functions 2014-04-16 20:40:15 +08:00
geode-aes.c crypto: geode - Don't use tfm->__crt_alg->cra_name directly 2014-05-22 21:03:13 +08:00
geode-aes.h crypto: geode - Consistently use AES_KEYSIZE_128 2014-05-22 21:03:12 +08:00
hifn_795x.c crypto: hifn_795x, picoxcell - use ablkcipher_request_cast 2015-12-29 21:32:44 +08:00
img-hash.c crypto: img-hash - fix spelling mistake in dev_err error message 2015-08-04 17:41:31 +08:00
ixp4xx_crypto.c crypto: ixp4xx - Fix false lastlen uninitialised warning 2016-01-25 22:42:09 +08:00
Kconfig crypto: rockchip - add hash support for crypto engine in rk3288 2016-02-28 03:26:29 +08:00
Makefile crypto: rockchip - add crypto driver for rk3288 2015-11-27 21:19:32 +08:00
mv_cesa.c crypto: marvell/cesa - another fix up for of_get_named_gen_pool() rename 2015-07-03 11:37:02 -07:00
mv_cesa.h crypto: mv_cesa - Add missing #define 2014-08-29 21:46:36 +08:00
mxs-dcp.c crypto: mxs-dcp - fix type of ret for wait_for_completion_timeout 2015-02-28 23:31:36 +13:00
n2_asm.S crypto: n2 - Add Niagara2 crypto driver 2010-05-19 14:14:04 +10:00
n2_core.c crypto: n2 - Use precalculated hash from headers 2015-12-22 20:43:37 +08:00
n2_core.h crypto: n2 - Add Niagara2 crypto driver 2010-05-19 14:14:04 +10:00
omap-aes.c crypto: omap-aes - Support crypto engine framework 2016-02-01 22:27:04 +08:00
omap-des.c crypto: omap - Removed unused variable "err" 2015-12-17 16:42:13 +08:00
omap-sham.c crypto/omap-sham: remove an open coded access to ->page_link 2015-08-17 08:12:57 -06:00
padlock-aes.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2016-01-12 18:51:14 -08:00
padlock-sha.c x86/cpufeature: Remove unused and seldomly used cpu_has_xx macros 2015-12-19 11:49:55 +01:00
picoxcell_crypto_regs.h crypto: picoxcell - add support for the picoxcell crypto engines 2011-02-21 22:42:40 +11:00
picoxcell_crypto.c crypto: hifn_795x, picoxcell - use ablkcipher_request_cast 2015-12-29 21:32:44 +08:00
s5p-sss.c crypto: s5p-sss - Use memcpy_toio for iomem annotated memory 2016-01-25 22:39:02 +08:00
sahara.c crypto: sahara - fill the statesize field 2016-02-06 15:33:29 +08:00
talitos.c crypto: talitos - add new crypto modes 2015-12-04 22:29:56 +08:00
talitos.h crypto: talitos - add new crypto modes 2015-12-04 22:29:56 +08:00