linux/drivers/crypto
Kees Cook be64d4b114 crypto: hisilicon: Wipe entire pool on error
[ Upstream commit aa85923a95 ]

To work around a Clang __builtin_object_size bug that shows up under
CONFIG_FORTIFY_SOURCE and UBSAN_BOUNDS, move the per-loop-iteration
mem_block wipe into a single wipe of the entire pool structure after
the loop.

Reported-by: Nathan Chancellor <nathan@kernel.org>
Link: https://github.com/ClangBuiltLinux/linux/issues/1780
Cc: Weili Qian <qianweili@huawei.com>
Cc: Zhou Wang <wangzhou1@hisilicon.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Tested-by: Nathan Chancellor <nathan@kernel.org> # build
Link: https://lore.kernel.org/r/20230106041945.never.831-kees@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-03-10 09:29:10 +01:00
..
allwinner hwrng: core - treat default_quality as a maximum and default to 1024 2022-11-18 16:59:34 +08:00
amcc crypto: crypto4xx - Call dma_unmap_page when done 2023-03-10 09:28:21 +01:00
amlogic crypto: amlogic - Remove kcalloc without check 2022-12-02 18:12:40 +08:00
aspeed crypto: aspeed - Remove redundant dev_err call 2022-09-30 13:59:13 +08:00
axis crypto: artpec6 - Fix printk warning on size_t/%d 2022-09-24 16:14:43 +08:00
bcm crypto: bcm - Simplify obtain the name for cipher 2022-09-30 13:59:13 +08:00
caam crypto: caam - fix CAAM io mem access in blob_gen 2022-12-30 17:57:42 +08:00
cavium crypto: cavium - Set DMA alignment explicitly 2022-12-09 18:45:00 +08:00
ccp crypto: ccp - Flush the SEV-ES TMR memory before giving it to firmware 2023-03-10 09:28:12 +01:00
ccree crypto: ccree - Set DMA alignment explicitly 2022-12-09 18:45:00 +08:00
chelsio crypto: chelsio - Set DMA alignment explicitly 2022-12-09 18:45:00 +08:00
gemini Revert "crypto: gemini - Fix error check for dma_map_sg" 2022-09-02 18:15:53 +08:00
hisilicon crypto: hisilicon: Wipe entire pool on error 2023-03-10 09:29:10 +01:00
inside-secure crypto: safexcel - Set DMA alignment explicitly 2022-12-09 18:45:00 +08:00
keembay crypto: keembay - Set DMA alignment explicitly 2022-12-09 18:45:00 +08:00
marvell crypto: octeontx2 - Fix objects shared between several modules 2023-03-10 09:28:20 +01:00
nx crypto: Prepare to move crypto_tfm_ctx 2022-12-02 18:12:40 +08:00
qat crypto: qat - add resubmit logic for decompression 2022-12-09 18:45:00 +08:00
qce crypto: qce - Set DMA alignment explicitly 2022-12-09 18:45:00 +08:00
rockchip crypto: rockchip - Remove surplus dev_err() when using platform_get_irq() 2022-11-11 18:14:59 +08:00
stm32 crypto: stm32/cryp - enable for use with Ux500 2022-12-09 18:45:00 +08:00
ux500 crypto: ux500 - update debug config after ux500 cryp driver removal 2023-03-10 09:28:04 +01:00
virtio virtio-crypto: fix memory leak in virtio_crypto_alg_skcipher_close_session() 2022-12-28 05:28:10 -05:00
vmx Merge branch 'topic/objtool' into next 2022-12-08 23:57:47 +11:00
xilinx crypto: xilinx: prevent probing on non-xilinx hardware 2022-03-09 15:12:31 +12:00
atmel-aes-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-aes.c crypto: atmel-aes - Drop if with an always false condition 2022-07-15 16:43:20 +08:00
atmel-authenc.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
atmel-ecc.c MAINTAINERS: Update email of Tudor Ambarus 2023-01-07 15:18:44 +01:00
atmel-i2c.c MAINTAINERS: Update email of Tudor Ambarus 2023-01-07 15:18:44 +01:00
atmel-i2c.h MAINTAINERS: Update email of Tudor Ambarus 2023-01-07 15:18:44 +01:00
atmel-sha-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-sha.c crypto: atmel-sha - initialize sha_dd while declaring 2022-07-15 16:43:22 +08:00
atmel-sha204a.c crypto: atmel-sha204a - Convert to i2c's .probe_new() 2022-11-25 17:39:19 +08:00
atmel-tdes-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-tdes.c crypto: atmel-tdes - initialize tdes_dd while declaring 2022-07-15 16:43:22 +08:00
exynos-rng.c crypto: exynos - use devm_platform_ioremap_resource() to simplify code 2019-08-09 15:11:59 +10:00
geode-aes.c crypto: geode - use DEFINE_SPINLOCK() for spinlock 2021-04-16 21:16:31 +10:00
geode-aes.h crypto: geode-aes - convert to skcipher API and make thread-safe 2019-10-23 19:46:56 +11:00
hifn_795x.c crypto: drivers - use semicolons rather than commas to separate statements 2020-10-02 18:02:15 +10:00
img-hash.c crypto: img-hash - Fix variable dereferenced before check 'hdev->req' 2022-12-09 18:45:00 +08:00
ixp4xx_crypto.c crypto: ixp4xx - Fix sparse warnings 2022-10-21 19:15:35 +08:00
Kconfig crypto: ccree,hisilicon - Fix dependencies to correct algorithm 2022-12-02 18:12:41 +08:00
Makefile crypto: stm32 - enable drivers to be used on Ux500 2022-12-09 18:45:00 +08:00
mxs-dcp.c crypto: mxs-dcp - Fix scatterlist processing 2022-01-31 11:21:46 +11:00
n2_asm.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
n2_core.c crypto: n2 - add missing hash statesize 2022-10-21 19:15:35 +08:00
n2_core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
omap-aes-gcm.c crypto: omap-aes - avoid spamming console with self tests 2020-06-04 22:03:39 +10:00
omap-aes.c crypto: omap-aes - Drop if with an always false condition 2022-07-15 16:43:21 +08:00
omap-aes.h crypto: omap-aes - permit asynchronous skcipher as fallback 2020-07-16 21:49:02 +10:00
omap-crypto.c crypto: omap - Avoid redundant copy when using truncated sg list 2021-08-21 15:44:53 +08:00
omap-crypto.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
omap-des.c crypto: omap-des - Drop if with an always false condition 2022-07-15 16:43:21 +08:00
omap-sham.c crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe() 2022-12-02 18:12:40 +08:00
padlock-aes.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
padlock-sha.c crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
qcom-rng.c crypto: qcom-rng - Fix qcom_rng_of_match unused warning 2022-08-19 18:39:35 +08:00
s5p-sss.c crypto: s5p-sss - Drop if with an always false condition 2022-07-15 16:43:21 +08:00
sa2ul.c crypto: sa2ul - Check engine status before enabling 2022-07-15 16:43:22 +08:00
sa2ul.h crypto: sa2ul - Check engine status before enabling 2022-07-15 16:43:22 +08:00
sahara.c crypto: sahara - Fix error check for dma_map_sg 2022-08-26 18:50:39 +08:00
talitos.c crypto: talitos - Use the defined variable to clean code 2022-10-21 19:15:35 +08:00
talitos.h crypto: talitos - Replace zero-length arrays with DECLARE_FLEX_ARRAY() helper 2022-10-21 19:05:24 +08:00