qemu/tests
Eric Blake a861564015 qmp: Fix reference-counting of qnull on empty output visit
Commit 6c2f9a15 ensured that we would not return NULL when the
caller used an output visitor but had nothing to visit. But
in doing so, it added a FIXME about a reference count leak
that could abort qemu in the (unlikely) case of SIZE_MAX such
visits (more plausible on 32-bit).  (Although that commit
suggested we might fix it in time for 2.5, we ran out of time;
fortunately, it is unlikely enough to bite that it was not
worth worrying about during the 2.5 release.)

This fixes things by documenting the internal contracts, and
explaining why the internal function can return NULL and only
the public facing interface needs to worry about qnull(),
thus avoiding over-referencing the qnull_ global object.

It does not, however, fix the stupidity of the stack mixing
up two separate pieces of information; add a FIXME to explain
that issue, which will be fixed shortly in a future patch.

Signed-off-by: Eric Blake <eblake@redhat.com>
Cc: qemu-stable@nongnu.org
Message-Id: <1454075341-13658-25-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2016-02-08 17:29:57 +01:00
..
acpi-test-data
guest-debug
image-fuzzer
libqos
multiboot
qapi-schema
qemu-iotests
rocker
tcg
vmstate-static-checker-data
.gitignore
ac97-test.c
ahci-test.c
bios-tables-test.c
boot-order-test.c
check-block.sh
check-qdict.c
check-qfloat.c
check-qint.c
check-qjson.c
check-qlist.c
check-qom-interface.c
check-qom-proplist.c
check-qstring.c
crypto-tls-x509-helpers.c
crypto-tls-x509-helpers.h
device-introspect-test.c
display-vga-test.c
drive_del-test.c
ds1338-test.c
e1000-test.c
eepro100-test.c
endianness-test.c
es1370-test.c
fdc-test.c
fw_cfg-test.c
hd-geo-test.c
i440fx-test.c
i82801b11-test.c
ide-test.c
intel-hda-test.c
io-channel-helpers.c
io-channel-helpers.h
ioh3420-test.c
ipmi-bt-test.c
ipmi-kcs-test.c
ipoctal232-test.c
ivshmem-test.c
libqtest.c
libqtest.h
m48t59-test.c
Makefile
ne2000-test.c
nvme-test.c
pc-cpu-test.c
pcnet-test.c
pkix_asn1_tab.c
pvpanic-test.c
q35-test.c
qemu-iotests-quick.sh
qom-test.c
rcutorture.c
rtc-test.c
rtl8139-test.c
spapr-phb-test.c
tco-test.c
test-aio.c
test-base64.c
test-bitops.c
test-blockjob-txn.c
test-coroutine.c
test-crypto-cipher.c
test-crypto-hash.c
test-crypto-secret.c
test-crypto-tlscredsx509.c
test-crypto-tlssession.c
test-cutils.c
test-hbitmap.c
test-int128.c
test-io-channel-buffer.c
test-io-channel-command.c
test-io-channel-file.c
test-io-channel-socket.c
test-io-channel-tls.c
test-io-task.c
test-iov.c
test-mul64.c
test-netfilter.c
test-opts-visitor.c
test-qdev-global-props.c
test-qemu-opts.c
test-qga.c
test-qmp-commands.c
test-qmp-event.c
test-qmp-input-strict.c
test-qmp-input-visitor.c
test-qmp-output-visitor.c qmp: Fix reference-counting of qnull on empty output visit 2016-02-08 17:29:57 +01:00
test-rcu-list.c
test-rfifolock.c
test-string-input-visitor.c
test-string-output-visitor.c
test-thread-pool.c
test-throttle.c
test-timed-average.c
test-visitor-serialization.c
test-vmstate.c
test-write-threshold.c
test-x86-cpuid.c
test-xbzrle.c
tmp105-test.c
tpci200-test.c
usb-hcd-ehci-test.c
usb-hcd-ohci-test.c
usb-hcd-uhci-test.c
usb-hcd-xhci-test.c
vhost-user-bridge.c
vhost-user-test.c
virtio-9p-test.c
virtio-balloon-test.c
virtio-blk-test.c
virtio-console-test.c
virtio-net-test.c
virtio-rng-test.c
virtio-scsi-test.c
virtio-serial-test.c
vmxnet3-test.c
wdt_ib700-test.c