From e9cdacdc34b5adbbfa53a5bead8ea466e0ac5a90 Mon Sep 17 00:00:00 2001 From: Matthew Shyu Date: Tue, 19 Jun 2018 19:04:13 +0800 Subject: [PATCH] crypto: aml-dma: fix errors found in coverity check PD#168725: fix errors found in coverity check Change-Id: I7528dc0c6122d32e3f2937a4b1869031d10851af Signed-off-by: Matthew Shyu --- drivers/amlogic/crypto/aml-aes-dma.c | 1 + drivers/amlogic/crypto/aml-dma.c | 1 + drivers/amlogic/crypto/aml-tdes-dma.c | 7 +++++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/amlogic/crypto/aml-aes-dma.c b/drivers/amlogic/crypto/aml-aes-dma.c index fd0c7e7..1239089 100644 --- a/drivers/amlogic/crypto/aml-aes-dma.c +++ b/drivers/amlogic/crypto/aml-aes-dma.c @@ -988,6 +988,7 @@ static void aml_aes_done_task(unsigned long data) if (!dd->in_sg || !dd->out_sg) { pr_err("aml-aes: sg invalid\n"); err = -EINVAL; + break; } } } diff --git a/drivers/amlogic/crypto/aml-dma.c b/drivers/amlogic/crypto/aml-dma.c index cf7ea7c..f50417b 100644 --- a/drivers/amlogic/crypto/aml-dma.c +++ b/drivers/amlogic/crypto/aml-dma.c @@ -124,6 +124,7 @@ static int aml_dma_probe(struct platform_device *pdev) return err; dma_err: + kfree(dma_dd); dev_err(dev, "initialization failed.\n"); return err; diff --git a/drivers/amlogic/crypto/aml-tdes-dma.c b/drivers/amlogic/crypto/aml-tdes-dma.c index 6c7b658..8927412 100644 --- a/drivers/amlogic/crypto/aml-tdes-dma.c +++ b/drivers/amlogic/crypto/aml-tdes-dma.c @@ -777,10 +777,13 @@ static void aml_tdes_done_task(unsigned long data) uint32_t i = 0; for (i = 0; i < dd->fast_nents; i++) { - if (!dd->in_sg || !dd->out_sg) - err = -EINVAL; dd->in_sg = sg_next(dd->in_sg); dd->out_sg = sg_next(dd->out_sg); + if (!dd->in_sg || !dd->out_sg) { + pr_err("aml-tdes: sg invalid\n"); + err = -EINVAL; + break; + } } } -- 2.7.4