diff options
author | Christophe Jaillet <christophe.jaillet@wanadoo.fr> | 2015-01-20 02:15:52 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-01-25 19:34:21 -0500 |
commit | 088f628cc0898c4f0da7e91945f9f43a0b18a3bf (patch) | |
tree | 6c5b921c803eb936740f2221e5bfb173ea51815b /drivers/crypto | |
parent | 379dcfb406002d855fa56f9c3d290c4048f44e9c (diff) |
crypto: atmel - Free memory in error path
If only one of the 2 __get_free_pages fails, then there is a memory leak.
Signed-off-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/atmel-aes.c | 2 | ||||
-rw-r--r-- | drivers/crypto/atmel-tdes.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c index 53d1c330f8a8..6597aac9905d 100644 --- a/drivers/crypto/atmel-aes.c +++ b/drivers/crypto/atmel-aes.c | |||
@@ -673,9 +673,9 @@ err_map_out: | |||
673 | dma_unmap_single(dd->dev, dd->dma_addr_in, dd->buflen, | 673 | dma_unmap_single(dd->dev, dd->dma_addr_in, dd->buflen, |
674 | DMA_TO_DEVICE); | 674 | DMA_TO_DEVICE); |
675 | err_map_in: | 675 | err_map_in: |
676 | err_alloc: | ||
676 | free_page((unsigned long)dd->buf_out); | 677 | free_page((unsigned long)dd->buf_out); |
677 | free_page((unsigned long)dd->buf_in); | 678 | free_page((unsigned long)dd->buf_in); |
678 | err_alloc: | ||
679 | if (err) | 679 | if (err) |
680 | pr_err("error: %d\n", err); | 680 | pr_err("error: %d\n", err); |
681 | return err; | 681 | return err; |
diff --git a/drivers/crypto/atmel-tdes.c b/drivers/crypto/atmel-tdes.c index 5e7c896cde30..258772d9b22f 100644 --- a/drivers/crypto/atmel-tdes.c +++ b/drivers/crypto/atmel-tdes.c | |||
@@ -376,9 +376,9 @@ err_map_out: | |||
376 | dma_unmap_single(dd->dev, dd->dma_addr_in, dd->buflen, | 376 | dma_unmap_single(dd->dev, dd->dma_addr_in, dd->buflen, |
377 | DMA_TO_DEVICE); | 377 | DMA_TO_DEVICE); |
378 | err_map_in: | 378 | err_map_in: |
379 | err_alloc: | ||
379 | free_page((unsigned long)dd->buf_out); | 380 | free_page((unsigned long)dd->buf_out); |
380 | free_page((unsigned long)dd->buf_in); | 381 | free_page((unsigned long)dd->buf_in); |
381 | err_alloc: | ||
382 | if (err) | 382 | if (err) |
383 | pr_err("error: %d\n", err); | 383 | pr_err("error: %d\n", err); |
384 | return err; | 384 | return err; |