crypto: ccree - don't attempt 0 len DMA mappings
authorGilad Ben-Yossef <gilad@benyossef.com>
Thu, 17 Feb 2022 19:27:26 +0000 (21:27 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 23 Feb 2022 03:28:32 +0000 (15:28 +1200)
Refuse to try mapping zero bytes as this may cause a fault
on some configurations / platforms and it seems the prev.
attempt is not enough and we need to be more explicit.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Reported-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Fixes: ce0fc6db38de ("crypto: ccree - protect against empty or NULL
scatterlists")
Tested-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccree/cc_buffer_mgr.c

index a5e041d..11e0278 100644 (file)
@@ -258,6 +258,13 @@ static int cc_map_sg(struct device *dev, struct scatterlist *sg,
 {
        int ret = 0;
 
+       if (!nbytes) {
+               *mapped_nents = 0;
+               *lbytes = 0;
+               *nents = 0;
+               return 0;
+       }
+
        *nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes);
        if (*nents > max_sg_nents) {
                *nents = 0;