diff mbox

i40e: Fix possible memory leak in i40e_dbg_dump_desc

Message ID 1417874601.31745.21.camel@perches.com
State Awaiting Upstream, archived
Delegated to: David Miller
Headers show

Commit Message

Joe Perches Dec. 6, 2014, 2:03 p.m. UTC
I didn't notice that return in the code, fix it by
adding a goto out instead to free the memory.

Fixes:

> New smatch warnings:
> drivers/net/ethernet/intel/i40e/i40e_debugfs.c:832 i40e_dbg_dump_desc() warn: possible memory leak of 'ring'

Signed-off-by: Joe Perches <joe@perches.com>
Noticed-by: Dan Carpenter <dan.carpenter@oracle.com> (go smatch)
---

Jeff Kirsher can legitimately give me a hard time now...
Thanks Dan.

 drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Kirsher, Jeffrey T Dec. 7, 2014, 7:57 p.m. UTC | #1
On Sat, 2014-12-06 at 06:03 -0800, Joe Perches wrote:
> I didn't notice that return in the code, fix it by
> adding a goto out instead to free the memory.
> 
> Fixes:
> 
> > New smatch warnings:
> > drivers/net/ethernet/intel/i40e/i40e_debugfs.c:832
> i40e_dbg_dump_desc() warn: possible memory leak of 'ring'
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> Noticed-by: Dan Carpenter <dan.carpenter@oracle.com> (go smatch)
> ---
> 
> Jeff Kirsher can legitimately give me a hard time now...
> Thanks Dan.
> 
>  drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Thanks Joe, I have added your patch to my queue.
diff mbox

Patch

diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 433a558..cb0de45 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -829,7 +829,7 @@  static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n,
 		if (desc_n >= ring->count || desc_n < 0) {
 			dev_info(&pf->pdev->dev,
 				 "descriptor %d not found\n", desc_n);
-			return;
+			goto out;
 		}
 		if (!is_rx_ring) {
 			txd = I40E_TX_DESC(ring, desc_n);
@@ -855,6 +855,8 @@  static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n,
 	} else {
 		dev_info(&pf->pdev->dev, "dump desc rx/tx <vsi_seid> <ring_id> [<desc_n>]\n");
 	}
+
+out:
 	kfree(ring);
 }