All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] ivshmem: fix memory backend leak
@ 2018-11-01 10:44 Igor Mammedov
  2018-11-01 11:02 ` Marc-André Lureau
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Igor Mammedov @ 2018-11-01 10:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, marcandre.lureau, armbru

object_new() returns a new backend with refcount == 1 and
then later object_property_add_child() increases refcount to 2
So when ivshmem is desroyed, the backend it has created isn't
destroyed along with it as children cleanup will bring
backend's refcount only to 1, which leaks backend including
resources it is using.

Drop the original reference from object_new() once backend
is attached to its parent.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/misc/ivshmem.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index f88910e..ecfd10a 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -1279,6 +1279,7 @@ static void desugar_shm(IVShmemState *s)
     object_property_set_bool(obj, true, "share", &error_abort);
     object_property_add_child(OBJECT(s), "internal-shm-backend", obj,
                               &error_abort);
+    object_unref(obj);
     user_creatable_complete(obj, &error_abort);
     s->hostmem = MEMORY_BACKEND(obj);
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-11-06 12:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-01 10:44 [Qemu-devel] [PATCH] ivshmem: fix memory backend leak Igor Mammedov
2018-11-01 11:02 ` Marc-André Lureau
2018-11-01 12:33   ` Igor Mammedov
2018-11-05 15:55     ` Markus Armbruster
2018-11-01 14:27 ` Philippe Mathieu-Daudé
2018-11-01 15:22   ` Igor Mammedov
2018-11-06 12:34 ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.