summary refs log tree commit diff stats
path: root/hw/ipmi/ipmi.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2018-05-31 21:51:17 +0200
committerGerd Hoffmann <kraxel@redhat.com>2018-06-12 12:07:30 +0200
commit265b578c584b1a86c7028790deaa2f4392dd0a65 (patch)
tree193f6032791f9c2836fb9508cbbd755a1fab25b7 /hw/ipmi/ipmi.c
parentf3d58385a6d3d82f65db602c5506e2d3d8c82394 (diff)
downloadfocaccia-qemu-265b578c584b1a86c7028790deaa2f4392dd0a65.tar.gz
focaccia-qemu-265b578c584b1a86c7028790deaa2f4392dd0a65.zip
object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence
A link property can be set during creation, with
object_property_add_link() and later with object_property_set_link().

add_link() doesn't add a reference to the target object, while
set_link() does.

Furthemore, OBJ_PROP_LINK_UNREF_ON_RELEASE flags, set during add_link,
says whether a reference must be released when the property is destroyed.
This can lead to leaks if the property was later set_link(), as the
added reference is never released.

Instead, rename OBJ_PROP_LINK_UNREF_ON_RELEASE to OBJ_PROP_LINK_STRONG
and use that has an indication on how the link handle reference
management in set_link().

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 20180531195119.22021-3-marcandre.lureau@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/ipmi/ipmi.c')
-rw-r--r--hw/ipmi/ipmi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/ipmi/ipmi.c b/hw/ipmi/ipmi.c
index 9be281fd87..63c031703d 100644
--- a/hw/ipmi/ipmi.c
+++ b/hw/ipmi/ipmi.c
@@ -104,7 +104,7 @@ void ipmi_bmc_find_and_link(Object *obj, Object **bmc)
 {
     object_property_add_link(obj, "bmc", TYPE_IPMI_BMC, bmc,
                              isa_ipmi_bmc_check,
-                             OBJ_PROP_LINK_UNREF_ON_RELEASE,
+                             OBJ_PROP_LINK_STRONG,
                              &error_abort);
 }