diff mbox series

[06/18] vhost-vdpa: fix leaking of vhost_net in vhost_vdpa_add()

Message ID 20210621041650.5826-7-jasowang@redhat.com (mailing list archive)
State New, archived
Headers show
Series vhost-vDPA multiqueue | expand

Commit Message

Jason Wang June 21, 2021, 4:16 a.m. UTC
Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 net/vhost-vdpa.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Stefano Garzarella June 23, 2021, 3 p.m. UTC | #1
On Mon, Jun 21, 2021 at 12:16:38PM +0800, Jason Wang wrote:
>Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
>Signed-off-by: Jason Wang <jasowang@redhat.com>
>---
> net/vhost-vdpa.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
>index f5689a7c32..21f09c546f 100644
>--- a/net/vhost-vdpa.c
>+++ b/net/vhost-vdpa.c
>@@ -111,6 +111,7 @@ static int vhost_vdpa_add(NetClientState *ncs, void *be)
> err:
>     if (net) {
>         vhost_net_cleanup(net);
>+        g_free(net);
>     }
>     return -1;
> }
>-- 
>2.25.1
>
>

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Eli Cohen June 24, 2021, 7:06 a.m. UTC | #2
On Wed, Jun 23, 2021 at 05:00:16PM +0200, Stefano Garzarella wrote:
> On Mon, Jun 21, 2021 at 12:16:38PM +0800, Jason Wang wrote:
> > Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
> > Signed-off-by: Jason Wang <jasowang@redhat.com>
> > ---
> > net/vhost-vdpa.c | 1 +
> > 1 file changed, 1 insertion(+)
> > 
> > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> > index f5689a7c32..21f09c546f 100644
> > --- a/net/vhost-vdpa.c
> > +++ b/net/vhost-vdpa.c
> > @@ -111,6 +111,7 @@ static int vhost_vdpa_add(NetClientState *ncs, void *be)
> > err:
> >     if (net) {
This check is redundant. net is not null.
> >         vhost_net_cleanup(net);
> > +        g_free(net);
> >     }
> >     return -1;
> > }
> > -- 
> > 2.25.1
> > 
> > 
> 
> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>
Jason Wang June 24, 2021, 7:10 a.m. UTC | #3
在 2021/6/24 下午3:06, Eli Cohen 写道:
> On Wed, Jun 23, 2021 at 05:00:16PM +0200, Stefano Garzarella wrote:
>> On Mon, Jun 21, 2021 at 12:16:38PM +0800, Jason Wang wrote:
>>> Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
>>> Signed-off-by: Jason Wang <jasowang@redhat.com>
>>> ---
>>> net/vhost-vdpa.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
>>> index f5689a7c32..21f09c546f 100644
>>> --- a/net/vhost-vdpa.c
>>> +++ b/net/vhost-vdpa.c
>>> @@ -111,6 +111,7 @@ static int vhost_vdpa_add(NetClientState *ncs, void *be)
>>> err:
>>>      if (net) {
> This check is redundant. net is not null.


Actually, it can:

     net = vhost_net_init(&options);
     if (!net) {
         error_report("failed to init vhost_net for queue");
         goto err;
     }

Thanks


>>>          vhost_net_cleanup(net);
>>> +        g_free(net);
>>>      }
>>>      return -1;
>>> }
>>> -- 
>>> 2.25.1
>>>
>>>
>> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>>
Eli Cohen June 24, 2021, 7:14 a.m. UTC | #4
On Wed, Jun 23, 2021 at 05:00:16PM +0200, Stefano Garzarella wrote:
> On Mon, Jun 21, 2021 at 12:16:38PM +0800, Jason Wang wrote:
> > Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
> > Signed-off-by: Jason Wang <jasowang@redhat.com>
> > ---
> > net/vhost-vdpa.c | 1 +
> > 1 file changed, 1 insertion(+)
> > 
> > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> > index f5689a7c32..21f09c546f 100644
> > --- a/net/vhost-vdpa.c
> > +++ b/net/vhost-vdpa.c
> > @@ -111,6 +111,7 @@ static int vhost_vdpa_add(NetClientState *ncs, void *be)
> > err:
> >     if (net) {
> >         vhost_net_cleanup(net);
> > +        g_free(net);

Shouldn't this call be part of the implementation of
vhost_net_cleanup()?

> >     }
> >     return -1;
> > }
> > -- 
> > 2.25.1
> > 
> > 
> 
> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>
Eli Cohen June 24, 2021, 7:32 a.m. UTC | #5
On Thu, Jun 24, 2021 at 03:10:46PM +0800, Jason Wang wrote:
> 
> 在 2021/6/24 下午3:06, Eli Cohen 写道:
> > On Wed, Jun 23, 2021 at 05:00:16PM +0200, Stefano Garzarella wrote:
> > > On Mon, Jun 21, 2021 at 12:16:38PM +0800, Jason Wang wrote:
> > > > Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
> > > > Signed-off-by: Jason Wang <jasowang@redhat.com>
> > > > ---
> > > > net/vhost-vdpa.c | 1 +
> > > > 1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> > > > index f5689a7c32..21f09c546f 100644
> > > > --- a/net/vhost-vdpa.c
> > > > +++ b/net/vhost-vdpa.c
> > > > @@ -111,6 +111,7 @@ static int vhost_vdpa_add(NetClientState *ncs, void *be)
> > > > err:
> > > >      if (net) {
> > This check is redundant. net is not null.
> 
> 
> Actually, it can:
> 
>     net = vhost_net_init(&options);
>     if (!net) {
>         error_report("failed to init vhost_net for queue");
>         goto err;
>     }

Hmmm... right.
> 
> Thanks
> 
> 
> > > >          vhost_net_cleanup(net);
> > > > +        g_free(net);
> > > >      }
> > > >      return -1;
> > > > }
> > > > -- 
> > > > 2.25.1
> > > > 
> > > > 
> > > Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
> > > 
>
Jason Wang June 24, 2021, 7:41 a.m. UTC | #6
在 2021/6/24 下午3:14, Eli Cohen 写道:
> On Wed, Jun 23, 2021 at 05:00:16PM +0200, Stefano Garzarella wrote:
>> On Mon, Jun 21, 2021 at 12:16:38PM +0800, Jason Wang wrote:
>>> Fixes: 1e0a84ea49b68 ("vhost-vdpa: introduce vhost-vdpa net client")
>>> Signed-off-by: Jason Wang <jasowang@redhat.com>
>>> ---
>>> net/vhost-vdpa.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
>>> index f5689a7c32..21f09c546f 100644
>>> --- a/net/vhost-vdpa.c
>>> +++ b/net/vhost-vdpa.c
>>> @@ -111,6 +111,7 @@ static int vhost_vdpa_add(NetClientState *ncs, void *be)
>>> err:
>>>      if (net) {
>>>          vhost_net_cleanup(net);
>>> +        g_free(net);
> Shouldn't this call be part of the implementation of
> vhost_net_cleanup()?


Not sure, at least there's one user that doesn't do the free (see 
vhost_user_stop()).

Thanks


>
>>>      }
>>>      return -1;
>>> }
>>> -- 
>>> 2.25.1
>>>
>>>
>> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>>
diff mbox series

Patch

diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
index f5689a7c32..21f09c546f 100644
--- a/net/vhost-vdpa.c
+++ b/net/vhost-vdpa.c
@@ -111,6 +111,7 @@  static int vhost_vdpa_add(NetClientState *ncs, void *be)
 err:
     if (net) {
         vhost_net_cleanup(net);
+        g_free(net);
     }
     return -1;
 }