]> git.proxmox.com Git - mirror_qemu.git/commit - hw/i386/pc.c
object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Thu, 31 May 2018 19:51:17 +0000 (21:51 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 12 Jun 2018 10:07:30 +0000 (12:07 +0200)
commit265b578c584b1a86c7028790deaa2f4392dd0a65
tree193f6032791f9c2836fb9508cbbd755a1fab25b7
parentf3d58385a6d3d82f65db602c5506e2d3d8c82394
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>
17 files changed:
hw/core/qdev-properties.c
hw/core/qdev.c
hw/display/xlnx_dp.c
hw/dma/xilinx_axidma.c
hw/dma/xlnx-zdma.c
hw/i386/pc.c
hw/i386/pc_piix.c
hw/i386/pc_q35.c
hw/ipmi/ipmi.c
hw/net/xilinx_axienet.c
hw/ssi/xilinx_spips.c
include/qom/object.h
net/can/can_host.c
net/colo-compare.c
qom/object.c
target/arm/cpu.c
ui/console.c