crypto: sun8i-ce - fix error return code in sun8i_ce_prng_generate()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 5 Mar 2021 01:57:17 +0000 (17:57 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 12 Mar 2021 13:04:04 +0000 (00:04 +1100)
When dma_mapping_error() returns an error, no error return code of
sun8i_ce_prng_generate() is assigned.
To fix this bug, err is assigned with -EFAULT as error return code.

Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Tested-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Acked-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c

index cfde9ee..cd1baee 100644 (file)
@@ -99,6 +99,7 @@ int sun8i_ce_prng_generate(struct crypto_rng *tfm, const u8 *src,
        dma_iv = dma_map_single(ce->dev, ctx->seed, ctx->slen, DMA_TO_DEVICE);
        if (dma_mapping_error(ce->dev, dma_iv)) {
                dev_err(ce->dev, "Cannot DMA MAP IV\n");
+               err = -EFAULT;
                goto err_iv;
        }