[dpdk-dev] lib/librte_vhost: fix memory leak

Message ID 1483502275-18482-1-git-send-email-wang.yong19@zte.com.cn (mailing list archive)
State Accepted, archived
Delegated to: Yuanhan Liu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel compilation success Compilation OK

Commit Message

Yong Wang Jan. 4, 2017, 3:57 a.m. UTC
  In function vhost_new_device(), current code dose not free 'dev'
in "i == MAX_VHOST_DEVICE" condition statements. It will lead to a
memory leak.

Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
---
 lib/librte_vhost/vhost.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Yuanhan Liu Jan. 4, 2017, 4:02 a.m. UTC | #1
On Tue, Jan 03, 2017 at 10:57:55PM -0500, Yong Wang wrote:
> In function vhost_new_device(), current code dose not free 'dev'
> in "i == MAX_VHOST_DEVICE" condition statements. It will lead to a
> memory leak.

Nice catch!

Here are few minor stuff you might need pay attention to for future
contribution:

- a fix patch needs a fixline, like following

  Fixes: 45ca9c6f7bc6 ("vhost: get rid of linked list for devices")

- the prefix for vhost lib is "vhost: ". And FYI, for PMD drivers, it's
  'net/PMD_NAME', say 'net/virtio'.


For you convenience, I have fixed the two while applying. And thanks
for the fix.

Applied to dpdk-next-virtio.

	--yliu
  
Yong Wang Jan. 4, 2017, 6:55 a.m. UTC | #2
> Yuanhan Liu <yuanhan.liu@linux.intel.com> 
> 2017/01/04 12:02
> 
> to
> 
> Yong Wang <wang.yong19@zte.com.cn>, 
> 
> cc
> 
> dev@dpdk.org
> 
> subject
> 
> Re: [PATCH] lib/librte_vhost: fix memory leak
> 
> On Tue, Jan 03, 2017 at 10:57:55PM -0500, Yong Wang wrote:
> > In function vhost_new_device(), current code dose not free 'dev'
> > in "i == MAX_VHOST_DEVICE" condition statements. It will lead to a
> > memory leak.
> 
> Nice catch!
> 
> Here are few minor stuff you might need pay attention to for future
> contribution:
> 
> - a fix patch needs a fixline, like following
> 
>   Fixes: 45ca9c6f7bc6 ("vhost: get rid of linked list for devices")
> 
> - the prefix for vhost lib is "vhost: ". And FYI, for PMD drivers, it's
>   'net/PMD_NAME', say 'net/virtio'.
> 
> 
> For you convenience, I have fixed the two while applying. And thanks
> for the fix.
> 
> Applied to dpdk-next-virtio.
> 
>    --yliu

Thanks for your advice.
  

Patch

diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index 31825b8..e415093 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -250,6 +250,7 @@  struct virtio_net *
 	if (i == MAX_VHOST_DEVICE) {
 		RTE_LOG(ERR, VHOST_CONFIG,
 			"Failed to find a free slot for new device.\n");
+		rte_free(dev);
 		return -1;
 	}