All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] crypto: qat - fix leak on error path
@ 2016-02-10 22:59 Tadeusz Struk
  2016-02-16 20:20 ` Herbert Xu
  0 siblings, 1 reply; 4+ messages in thread
From: Tadeusz Struk @ 2016-02-10 22:59 UTC (permalink / raw)
  To: herbert; +Cc: linux-crypto, Tadeusz Struk

Fix a leak on error path in qat asym

Reported-by: Salvatore Benedetto <salvatore.benedetto@intel.com>
Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
---
 drivers/crypto/qat/qat_common/qat_asym_algs.c | 70 ++++++++++++++-------------
 1 file changed, 36 insertions(+), 34 deletions(-)

diff --git a/drivers/crypto/qat/qat_common/qat_asym_algs.c b/drivers/crypto/qat/qat_common/qat_asym_algs.c
index 51c594f..e5c0727 100644
--- a/drivers/crypto/qat/qat_common/qat_asym_algs.c
+++ b/drivers/crypto/qat/qat_common/qat_asym_algs.c
@@ -340,14 +340,16 @@ static int qat_rsa_enc(struct akcipher_request *req)
 
 	if (!ret)
 		return -EINPROGRESS;
-unmap_src:
-	if (qat_req->src_align)
-		dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
-				  qat_req->in.enc.m);
-	else
-		if (!dma_mapping_error(dev, qat_req->in.enc.m))
-			dma_unmap_single(dev, qat_req->in.enc.m, ctx->key_sz,
-					 DMA_TO_DEVICE);
+
+	if (!dma_mapping_error(dev, qat_req->phy_out))
+		dma_unmap_single(dev, qat_req->phy_out,
+				 sizeof(struct qat_rsa_output_params),
+				 DMA_TO_DEVICE);
+unmap_in_params:
+	if (!dma_mapping_error(dev, qat_req->phy_in))
+		dma_unmap_single(dev, qat_req->phy_in,
+				 sizeof(struct qat_rsa_input_params),
+				 DMA_TO_DEVICE);
 unmap_dst:
 	if (qat_req->dst_align)
 		dma_free_coherent(dev, ctx->key_sz, qat_req->dst_align,
@@ -356,15 +358,14 @@ unmap_dst:
 		if (!dma_mapping_error(dev, qat_req->out.enc.c))
 			dma_unmap_single(dev, qat_req->out.enc.c, ctx->key_sz,
 					 DMA_FROM_DEVICE);
-unmap_in_params:
-	if (!dma_mapping_error(dev, qat_req->phy_in))
-		dma_unmap_single(dev, qat_req->phy_in,
-				 sizeof(struct qat_rsa_input_params),
-				 DMA_TO_DEVICE);
-	if (!dma_mapping_error(dev, qat_req->phy_out))
-		dma_unmap_single(dev, qat_req->phy_out,
-				 sizeof(struct qat_rsa_output_params),
-				 DMA_TO_DEVICE);
+unmap_src:
+	if (qat_req->src_align)
+		dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
+				  qat_req->in.enc.m);
+	else
+		if (!dma_mapping_error(dev, qat_req->in.enc.m))
+			dma_unmap_single(dev, qat_req->in.enc.m, ctx->key_sz,
+					 DMA_TO_DEVICE);
 	return ret;
 }
 
@@ -472,14 +473,16 @@ static int qat_rsa_dec(struct akcipher_request *req)
 
 	if (!ret)
 		return -EINPROGRESS;
-unmap_src:
-	if (qat_req->src_align)
-		dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
-				  qat_req->in.dec.c);
-	else
-		if (!dma_mapping_error(dev, qat_req->in.dec.c))
-			dma_unmap_single(dev, qat_req->in.dec.c, ctx->key_sz,
-					 DMA_TO_DEVICE);
+
+	if (!dma_mapping_error(dev, qat_req->phy_out))
+		dma_unmap_single(dev, qat_req->phy_out,
+				 sizeof(struct qat_rsa_output_params),
+				 DMA_TO_DEVICE);
+unmap_in_params:
+	if (!dma_mapping_error(dev, qat_req->phy_in))
+		dma_unmap_single(dev, qat_req->phy_in,
+				 sizeof(struct qat_rsa_input_params),
+				 DMA_TO_DEVICE);
 unmap_dst:
 	if (qat_req->dst_align)
 		dma_free_coherent(dev, ctx->key_sz, qat_req->dst_align,
@@ -488,15 +491,14 @@ unmap_dst:
 		if (!dma_mapping_error(dev, qat_req->out.dec.m))
 			dma_unmap_single(dev, qat_req->out.dec.m, ctx->key_sz,
 					 DMA_FROM_DEVICE);
-unmap_in_params:
-	if (!dma_mapping_error(dev, qat_req->phy_in))
-		dma_unmap_single(dev, qat_req->phy_in,
-				 sizeof(struct qat_rsa_input_params),
-				 DMA_TO_DEVICE);
-	if (!dma_mapping_error(dev, qat_req->phy_out))
-		dma_unmap_single(dev, qat_req->phy_out,
-				 sizeof(struct qat_rsa_output_params),
-				 DMA_TO_DEVICE);
+unmap_src:
+	if (qat_req->src_align)
+		dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
+				  qat_req->in.dec.c);
+	else
+		if (!dma_mapping_error(dev, qat_req->in.dec.c))
+			dma_unmap_single(dev, qat_req->in.dec.c, ctx->key_sz,
+					 DMA_TO_DEVICE);
 	return ret;
 }
 
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] crypto: qat - fix leak on error path
  2016-02-10 22:59 [PATCH] crypto: qat - fix leak on error path Tadeusz Struk
@ 2016-02-16 20:20 ` Herbert Xu
  2016-02-16 20:23   ` Tadeusz Struk
  0 siblings, 1 reply; 4+ messages in thread
From: Herbert Xu @ 2016-02-16 20:20 UTC (permalink / raw)
  To: Tadeusz Struk; +Cc: linux-crypto

On Wed, Feb 10, 2016 at 02:59:44PM -0800, Tadeusz Struk wrote:
> Fix a leak on error path in qat asym
> 
> Reported-by: Salvatore Benedetto <salvatore.benedetto@intel.com>
> Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>

Appiled.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] crypto: qat - fix leak on error path
  2016-02-16 20:20 ` Herbert Xu
@ 2016-02-16 20:23   ` Tadeusz Struk
  2016-02-17  7:46     ` Herbert Xu
  0 siblings, 1 reply; 4+ messages in thread
From: Tadeusz Struk @ 2016-02-16 20:23 UTC (permalink / raw)
  To: Herbert Xu; +Cc: linux-crypto

On 02/16/2016 12:20 PM, Herbert Xu wrote:
> On Wed, Feb 10, 2016 at 02:59:44PM -0800, Tadeusz Struk wrote:
>> > Fix a leak on error path in qat asym
>> > 
>> > Reported-by: Salvatore Benedetto <salvatore.benedetto@intel.com>
>> > Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
> Appiled.

Thanks Herbert, should we also push it to stable?
Thanks,
-- 
TS

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] crypto: qat - fix leak on error path
  2016-02-16 20:23   ` Tadeusz Struk
@ 2016-02-17  7:46     ` Herbert Xu
  0 siblings, 0 replies; 4+ messages in thread
From: Herbert Xu @ 2016-02-17  7:46 UTC (permalink / raw)
  To: Tadeusz Struk; +Cc: linux-crypto

On Tue, Feb 16, 2016 at 12:23:19PM -0800, Tadeusz Struk wrote:
> On 02/16/2016 12:20 PM, Herbert Xu wrote:
> > On Wed, Feb 10, 2016 at 02:59:44PM -0800, Tadeusz Struk wrote:
> >> > Fix a leak on error path in qat asym
> >> > 
> >> > Reported-by: Salvatore Benedetto <salvatore.benedetto@intel.com>
> >> > Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
> > Appiled.
> 
> Thanks Herbert, should we also push it to stable?

I don't think it is serious enough to warrant going in immediately.
We can push it once the next merge window opens up.

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-02-17  7:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-10 22:59 [PATCH] crypto: qat - fix leak on error path Tadeusz Struk
2016-02-16 20:20 ` Herbert Xu
2016-02-16 20:23   ` Tadeusz Struk
2016-02-17  7:46     ` Herbert Xu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.