Re: [Qemu-devel] [PATCH v2] virtio-net: fix the memory leak in rxfilter_notify()

2013-11-19 Thread Stefan Hajnoczi
On Mon, Nov 18, 2013 at 11:32:17PM +0800, Amos Kong wrote:
 object_get_canonical_path() returns a gchar*, it should be freeed by the
 caller.
 
 Signed-off-by: Amos Kong ak...@redhat.com
 ---
 v2: put gchar *path inside rxfilter_notify_enabled block
 ---
  hw/net/virtio-net.c | 8 
  1 file changed, 4 insertions(+), 4 deletions(-)

Thanks, applied to my net tree:
https://github.com/stefanha/qemu/commits/net

Stefan



[Qemu-devel] [PATCH v2] virtio-net: fix the memory leak in rxfilter_notify()

2013-11-18 Thread Amos Kong
object_get_canonical_path() returns a gchar*, it should be freeed by the
caller.

Signed-off-by: Amos Kong ak...@redhat.com
---
v2: put gchar *path inside rxfilter_notify_enabled block
---
 hw/net/virtio-net.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 613f144..b75c753 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -200,16 +200,16 @@ static void rxfilter_notify(NetClientState *nc)
 VirtIONet *n = qemu_get_nic_opaque(nc);
 
 if (nc-rxfilter_notify_enabled) {
+gchar *path = object_get_canonical_path(OBJECT(n-qdev));
 if (n-netclient_name) {
 event_data = qobject_from_jsonf({ 'name': %s, 'path': %s },
-n-netclient_name,
-
object_get_canonical_path(OBJECT(n-qdev)));
+n-netclient_name, path);
 } else {
-event_data = qobject_from_jsonf({ 'path': %s },
-
object_get_canonical_path(OBJECT(n-qdev)));
+event_data = qobject_from_jsonf({ 'path': %s }, path);
 }
 monitor_protocol_event(QEVENT_NIC_RX_FILTER_CHANGED, event_data);
 qobject_decref(event_data);
+g_free(path);
 
 /* disable event notification to avoid events flooding */
 nc-rxfilter_notify_enabled = 0;
-- 
1.8.3.1




Re: [Qemu-devel] [PATCH v2] virtio-net: fix the memory leak in rxfilter_notify()

2013-11-18 Thread Michael S. Tsirkin
On Mon, Nov 18, 2013 at 11:32:17PM +0800, Amos Kong wrote:
 object_get_canonical_path() returns a gchar*, it should be freeed by the
 caller.
 
 Signed-off-by: Amos Kong ak...@redhat.com

Reviewed-by: Michael S. Tsirkin m...@redhat.com

 ---
 v2: put gchar *path inside rxfilter_notify_enabled block
 ---
  hw/net/virtio-net.c | 8 
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
 index 613f144..b75c753 100644
 --- a/hw/net/virtio-net.c
 +++ b/hw/net/virtio-net.c
 @@ -200,16 +200,16 @@ static void rxfilter_notify(NetClientState *nc)
  VirtIONet *n = qemu_get_nic_opaque(nc);
  
  if (nc-rxfilter_notify_enabled) {
 +gchar *path = object_get_canonical_path(OBJECT(n-qdev));
  if (n-netclient_name) {
  event_data = qobject_from_jsonf({ 'name': %s, 'path': %s },
 -n-netclient_name,
 -
 object_get_canonical_path(OBJECT(n-qdev)));
 +n-netclient_name, path);
  } else {
 -event_data = qobject_from_jsonf({ 'path': %s },
 -
 object_get_canonical_path(OBJECT(n-qdev)));
 +event_data = qobject_from_jsonf({ 'path': %s }, path);
  }
  monitor_protocol_event(QEVENT_NIC_RX_FILTER_CHANGED, event_data);
  qobject_decref(event_data);
 +g_free(path);
  
  /* disable event notification to avoid events flooding */
  nc-rxfilter_notify_enabled = 0;
 -- 
 1.8.3.1



Re: [Qemu-devel] [PATCH v2] virtio-net: fix the memory leak in rxfilter_notify()

2013-11-18 Thread Vlad Yasevich
On 11/18/2013 10:32 AM, Amos Kong wrote:
 object_get_canonical_path() returns a gchar*, it should be freeed by the
 caller.
 
 Signed-off-by: Amos Kong ak...@redhat.com

Reviewed-by: Vlad Yasevich vyase...@redhat.com

-vlad

 ---
 v2: put gchar *path inside rxfilter_notify_enabled block
 ---
  hw/net/virtio-net.c | 8 
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
 index 613f144..b75c753 100644
 --- a/hw/net/virtio-net.c
 +++ b/hw/net/virtio-net.c
 @@ -200,16 +200,16 @@ static void rxfilter_notify(NetClientState *nc)
  VirtIONet *n = qemu_get_nic_opaque(nc);
  
  if (nc-rxfilter_notify_enabled) {
 +gchar *path = object_get_canonical_path(OBJECT(n-qdev));
  if (n-netclient_name) {
  event_data = qobject_from_jsonf({ 'name': %s, 'path': %s },
 -n-netclient_name,
 -
 object_get_canonical_path(OBJECT(n-qdev)));
 +n-netclient_name, path);
  } else {
 -event_data = qobject_from_jsonf({ 'path': %s },
 -
 object_get_canonical_path(OBJECT(n-qdev)));
 +event_data = qobject_from_jsonf({ 'path': %s }, path);
  }
  monitor_protocol_event(QEVENT_NIC_RX_FILTER_CHANGED, event_data);
  qobject_decref(event_data);
 +g_free(path);
  
  /* disable event notification to avoid events flooding */
  nc-rxfilter_notify_enabled = 0;
 




Re: [Qemu-devel] [PATCH v2] virtio-net: fix the memory leak in rxfilter_notify()

2013-11-18 Thread Andreas Färber
Am 18.11.2013 16:32, schrieb Amos Kong:
 object_get_canonical_path() returns a gchar*, it should be freeed by the
 caller.
 

Cc: qemu-sta...@nongnu.org

 Signed-off-by: Amos Kong ak...@redhat.com
 ---
 v2: put gchar *path inside rxfilter_notify_enabled block
 ---
  hw/net/virtio-net.c | 8 
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
 index 613f144..b75c753 100644
 --- a/hw/net/virtio-net.c
 +++ b/hw/net/virtio-net.c
 @@ -200,16 +200,16 @@ static void rxfilter_notify(NetClientState *nc)
  VirtIONet *n = qemu_get_nic_opaque(nc);
  
  if (nc-rxfilter_notify_enabled) {
 +gchar *path = object_get_canonical_path(OBJECT(n-qdev));
  if (n-netclient_name) {
  event_data = qobject_from_jsonf({ 'name': %s, 'path': %s },
 -n-netclient_name,
 -
 object_get_canonical_path(OBJECT(n-qdev)));
 +n-netclient_name, path);

Now that the lengthy funtion call is gone, you could align the arguments
inside '(', but anyway:

Reviewed-by: Andreas Färber afaer...@suse.de

Thanks,
Andreas

  } else {
 -event_data = qobject_from_jsonf({ 'path': %s },
 -
 object_get_canonical_path(OBJECT(n-qdev)));
 +event_data = qobject_from_jsonf({ 'path': %s }, path);
  }
  monitor_protocol_event(QEVENT_NIC_RX_FILTER_CHANGED, event_data);
  qobject_decref(event_data);
 +g_free(path);
  
  /* disable event notification to avoid events flooding */
  nc-rxfilter_notify_enabled = 0;
 


-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg