Re: [Qemu-devel] [PATCH] qbus: fix memory leak in qbus_free()
Thanks, applied. On Thu, May 27, 2010 at 5:35 AM, Isaku Yamahata yamah...@valinux.co.jp wrote: BusState::name is allocated in qbus_create_inplace(). So it should be freed by qbus_free(). Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp --- hw/qdev.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index af17486..2845af5 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -700,6 +700,7 @@ void qbus_free(BusState *bus) QLIST_REMOVE(bus, sibling); bus-parent-num_child_bus--; } + qemu_free((void*)bus-name); if (bus-qdev_allocated) { qemu_free(bus); } -- 1.6.6.1
Re: [Qemu-devel] [PATCH] qbus: fix memory leak in qbus_free()
Isaku Yamahata yamah...@valinux.co.jp writes: On Wed, Jun 02, 2010 at 05:01:13PM +0200, Markus Armbruster wrote: Isaku Yamahata yamah...@valinux.co.jp writes: BusState::name is allocated in qbus_create_inplace(). So it should be freed by qbus_free(). Correct. Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp --- hw/qdev.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index af17486..2845af5 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -700,6 +700,7 @@ void qbus_free(BusState *bus) QLIST_REMOVE(bus, sibling); bus-parent-num_child_bus--; } +qemu_free((void*)bus-name); if (bus-qdev_allocated) { qemu_free(bus); } Ugly, superfluous cast to void *. BusState::name is const char* so that the cast is necessary to drop const qualifier. Otherwise gcc complains as follows. qemu/hw/qdev.c: In function 'qbus_free': qemu/hw/qdev.c:657: error: passing argument 1 of 'qemu_free' discards qualifiers from pointer target type You're right. I keep suppressing all the silly trouble caused by const. Sorry for the noise.
Re: [Qemu-devel] [PATCH] qbus: fix memory leak in qbus_free()
Isaku Yamahata yamah...@valinux.co.jp writes: BusState::name is allocated in qbus_create_inplace(). So it should be freed by qbus_free(). Correct. Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp --- hw/qdev.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index af17486..2845af5 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -700,6 +700,7 @@ void qbus_free(BusState *bus) QLIST_REMOVE(bus, sibling); bus-parent-num_child_bus--; } +qemu_free((void*)bus-name); if (bus-qdev_allocated) { qemu_free(bus); } Ugly, superfluous cast to void *. Thanks!
Re: [Qemu-devel] [PATCH] qbus: fix memory leak in qbus_free()
On Wed, Jun 02, 2010 at 05:01:13PM +0200, Markus Armbruster wrote: Isaku Yamahata yamah...@valinux.co.jp writes: BusState::name is allocated in qbus_create_inplace(). So it should be freed by qbus_free(). Correct. Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp --- hw/qdev.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index af17486..2845af5 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -700,6 +700,7 @@ void qbus_free(BusState *bus) QLIST_REMOVE(bus, sibling); bus-parent-num_child_bus--; } +qemu_free((void*)bus-name); if (bus-qdev_allocated) { qemu_free(bus); } Ugly, superfluous cast to void *. BusState::name is const char* so that the cast is necessary to drop const qualifier. Otherwise gcc complains as follows. qemu/hw/qdev.c: In function 'qbus_free': qemu/hw/qdev.c:657: error: passing argument 1 of 'qemu_free' discards qualifiers from pointer target type -- yamahata
[Qemu-devel] [PATCH] qbus: fix memory leak in qbus_free()
BusState::name is allocated in qbus_create_inplace(). So it should be freed by qbus_free(). Signed-off-by: Isaku Yamahata yamah...@valinux.co.jp --- hw/qdev.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index af17486..2845af5 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -700,6 +700,7 @@ void qbus_free(BusState *bus) QLIST_REMOVE(bus, sibling); bus-parent-num_child_bus--; } +qemu_free((void*)bus-name); if (bus-qdev_allocated) { qemu_free(bus); } -- 1.6.6.1