linux-stable/drivers/char/hw_random
Herbert Xu aa8aa16ed9 hwrng: core - Fix page fault dead lock on mmap-ed hwrng
commit 78aafb3884 upstream.

There is a dead-lock in the hwrng device read path.  This triggers
when the user reads from /dev/hwrng into memory also mmap-ed from
/dev/hwrng.  The resulting page fault triggers a recursive read
which then dead-locks.

Fix this by using a stack buffer when calling copy_to_user.

Reported-by: Edward Adam Davis <eadavis@qq.com>
Reported-by: syzbot+c52ab18308964d248092@syzkaller.appspotmail.com
Fixes: 9996508b33 ("hwrng: core - Replace u32 in driver API with byte array")
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-31 16:16:58 -08:00
..
Kconfig
Makefile
amd-rng.c
arm_smccc_trng.c
atmel-rng.c
ba431-rng.c
bcm2835-rng.c
cavium-rng-vf.c
cavium-rng.c
cctrng.c
cctrng.h
cn10k-rng.c
core.c
exynos-trng.c
geode-rng.c
hisi-rng.c
imx-rngc.c
ingenic-rng.c
ingenic-trng.c
intel-rng.c
iproc-rng200.c
ixp4xx-rng.c
ks-sa-rng.c
meson-rng.c
mpfs-rng.c
mtk-rng.c
mxc-rnga.c
n2-asm.S
n2-drv.c
n2rng.h
nomadik-rng.c
npcm-rng.c
octeon-rng.c
omap-rng.c
omap3-rom-rng.c
optee-rng.c
pasemi-rng.c
pic32-rng.c
powernv-rng.c
pseries-rng.c
s390-trng.c
st-rng.c
stm32-rng.c
timeriomem-rng.c
via-rng.c
virtio-rng.c
xgene-rng.c
xiphera-trng.c