libvirt/src/util
Peter Krempa ea520f6b67 util: json: Fix freeing of objects appended to virJSONValue
It was not possible to determine whether virJSONValueObjectAddVArgs and
the functions using it would consume a virJSONValue or not when used
with the 'a' or 'A' modifier depending on when the loop failed.

Fix this by passing in a pointer to the pointer so that it can be
cleared once it's successfully consumed and the callers don't have to
second-guess leaving a chance of leaking or double freeing the value
depending on the ordering.

Fix all callers to pass a double pointer too.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2018-04-03 13:34:33 +02:00
..
iohelper.c iohelper: use saferead if later write with O_DIRECT 2017-10-24 10:53:18 +02:00
Makefile.inc.am util: introduce helper to parse message from RTM_GETNEIGH query 2018-03-15 11:22:42 +01:00
viralloc.c Use explicit boolean comparison in OOM check 2017-02-23 10:11:16 +00:00
viralloc.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virarch.c
virarch.h
virarptable.c virarptable: fix some leaks and format issue 2018-03-17 13:19:07 +01:00
virarptable.h virarptable: Include rtnetlink.h only on Linux 2018-03-15 14:59:12 +01:00
viratomic.c
viratomic.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
viraudit.c audit: Log only an info message if audit_level < 2 and audit is not supported 2017-12-13 13:42:16 +01:00
viraudit.h audit: Log only an info message if audit_level < 2 and audit is not supported 2017-12-13 13:42:16 +01:00
virauth.c
virauth.h
virauthconfig.c
virauthconfig.h
virbitmap.c util: bitmap: Note that shrinking the bitmap requires clearing of unused bits 2018-02-05 16:08:57 +01:00
virbitmap.h util: bitmap: Use VIR_SHRINK_N in virBitmapShrink 2018-02-05 16:08:57 +01:00
virbuffer.c util: buffer: Tolerate NULL 'buf' in virBufferStrcat 2018-03-23 14:52:07 +01:00
virbuffer.h hyperv: Escape WQL queries 2017-10-16 10:29:32 -04:00
vircgroup.c virCgroupValidateMachineGroup: Don't free @machinename 2017-08-01 11:37:51 +02:00
vircgroup.h Move machineName generation from virsystemd into domain_conf 2017-07-25 17:02:27 +02:00
vircgrouppriv.h
virclosecallbacks.c util: Fix domain object leaks on closecallbacks 2017-02-03 19:38:39 -05:00
virclosecallbacks.h Disallow inclusion of files from src/conf into src/utils 2017-02-20 15:12:07 +01:00
vircommand.c virCommandFDIsSet: Update documentation 2018-03-22 07:44:14 +01:00
vircommand.h virCommandPassFD: Give name to flags 2018-03-22 07:44:14 +01:00
vircommandpriv.h
virconf.c util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virconf.h maint: Replace tabs with spaces in all source files in repo 2017-10-18 13:25:10 +02:00
vircrypto.c Fix padding of encrypted data 2017-05-02 17:27:13 +01:00
vircrypto.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virdbus.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virdbus.h
virdbuspriv.h
virdnsmasq.c
virdnsmasq.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virebtables.c
virebtables.h
virendian.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virerror.c qemu: Introduce VIR_ERR_DEVICE_MISSING 2018-02-01 07:17:01 -05:00
virerror.h util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virevent.c util: Missing 'removeTimeoutImpl' check variable inside virEventRegisterImpl() function. 2017-10-20 15:15:35 +02:00
virevent.h
vireventpoll.c
vireventpoll.h THREADS.txt: fix typos 2017-01-25 09:18:49 +01:00
virfcp.c util: fix virfcp build on non-Linux 2017-05-26 20:00:51 +04:00
virfcp.h util: helper functions for fibre channel devices 2017-05-26 10:44:05 -04:00
virfdstream.c Print hex values with '0x' prefix and octal with '0' in debug messages 2017-09-25 13:34:53 +01:00
virfdstream.h fdstream: Implement sparse stream 2017-05-18 07:42:13 +02:00
virfile.c util: add virFileReadHeaderQuiet wrapper around virFileReadHeaderFD 2018-01-04 16:52:03 +01:00
virfile.h util: add virFileReadHeaderQuiet wrapper around virFileReadHeaderFD 2018-01-04 16:52:03 +01:00
virfilecache.c util: introduce virFileCache 2017-07-26 15:31:25 +02:00
virfilecache.h util: introduce virFileCache 2017-07-26 15:31:25 +02:00
virfirewall.c util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virfirewall.h
virfirewallpriv.h
virfirmware.c
virfirmware.h
virgettext.c
virgettext.h
virgic.c
virgic.h gic: Remove VIR_GIC_VERSION_DEFAULT 2017-05-16 16:48:30 +02:00
virhash.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virhash.h util: hash: Include stdbool.h in the header file 2017-08-03 09:49:15 +02:00
virhashcode.c Use ATTRIBUTE_FALLTHROUGH 2017-06-12 19:11:30 -04:00
virhashcode.h util: hash: Make virHashCodeGen mockable 2017-08-03 09:49:15 +02:00
virhook.c
virhook.h Replace QEmu with QEMU 2018-04-01 17:42:29 +02:00
virhostcpu.c util: virhostcpu: parse frequency information on S390 2018-01-10 17:24:11 -05:00
virhostcpu.h util: introduce virHostCPUGetMicrocodeVersion 2018-01-04 16:52:03 +01:00
virhostcpupriv.h util: Adapt virhostcpu to the new virsysfs 2017-03-27 13:13:29 +02:00
virhostdev.c util: fix improper assignment of return value in virHostdevReadNetConfig() 2017-08-13 23:07:13 -04:00
virhostdev.h util: Remove NONNULL from virHostdevReAttachMediatedDevices 2017-03-27 12:41:24 -04:00
virhostmem.c numa: avoid failure in nodememstats on non-NUMA systems 2017-11-09 17:11:51 -05:00
virhostmem.h
viridentity.c
viridentity.h
virinitctl.c
virinitctl.h
viriptables.c
viriptables.h
viriscsi.c virISCSIGetSession: Don't leak memory 2017-04-05 15:18:30 +02:00
viriscsi.h
virjson.c util: json: Fix freeing of objects appended to virJSONValue 2018-04-03 13:34:33 +02:00
virjson.h util: json: Add accessor for looking up JSON value type 2018-03-23 14:52:07 +01:00
virkeycode.c keycodemapdb: Update submodule 2018-03-12 16:30:49 +01:00
virkeycode.h
virkeyfile.c
virkeyfile.h
virkmod.c
virkmod.h
virlease.c
virlease.h
virlockspace.c Print hex values with '0x' prefix and octal with '0' in debug messages 2017-09-25 13:34:53 +01:00
virlockspace.h
virlog.c virLogGetOutputs: remove unnecessary braces 2018-02-21 18:34:49 +01:00
virlog.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virmacaddr.c conf: move 'generated' member from virMacAddr to virDomainNetDef 2018-02-19 13:15:00 -05:00
virmacaddr.h conf: move 'generated' member from virMacAddr to virDomainNetDef 2018-02-19 13:15:00 -05:00
virmacmap.c network: Move and rename networkMacMgrFileName 2017-08-16 14:17:57 -04:00
virmacmap.h network: Move and rename networkMacMgrFileName 2017-08-16 14:17:57 -04:00
virmdev.c util: mdev: Improve the error msg on non-existent mdev prior to VM start 2018-03-19 11:14:40 +01:00
virmdev.h util: mdev: Introduce virMediatedDeviceTypeReadAttrs getter 2018-01-29 15:34:30 +01:00
virnetdev.c nodedev: Fix failing to parse PCI address for non-PCI network devices 2018-01-19 09:53:01 -07:00
virnetdev.h nodedev: add switchdev to NIC capabilities 2017-09-18 08:32:24 -04:00
virnetdevbandwidth.c QoS: Set classes and filters in proper direction 2017-10-05 09:16:05 +02:00
virnetdevbandwidth.h QoS: Set classes and filters in proper direction 2017-10-05 09:16:05 +02:00
virnetdevbridge.c util: netdevbridge: Refactor error handling in virNetDevBridgeCreate 2017-06-28 15:27:17 +02:00
virnetdevbridge.h
virnetdevip.c IPv6 route check: list devices only once 2017-04-26 18:59:24 +02:00
virnetdevip.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virnetdevmacvlan.c util: restructure virNetDevReadNetConfig() to eliminate false error logs 2017-08-11 19:09:49 -04:00
virnetdevmacvlan.h util: make macvtap/macvlan generated name #defines available to other files 2017-04-28 09:43:52 -04:00
virnetdevmidonet.c
virnetdevmidonet.h
virnetdevopenvswitch.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virnetdevopenvswitch.h Handle hotplug change on VLAN configuration using OVS 2017-07-20 15:15:03 +02:00
virnetdevtap.c virNetDevTapInterfaceStats: Allow caller to not swap the statistics 2017-10-05 09:16:05 +02:00
virnetdevtap.h virNetDevTapInterfaceStats: Allow caller to not swap the statistics 2017-10-05 09:16:05 +02:00
virnetdevveth.c
virnetdevveth.h
virnetdevvlan.c
virnetdevvlan.h
virnetdevvportprofile.c util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virnetdevvportprofile.h util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virnetlink.c virNetlinkDumpCommand: Don't leak response buffer 2018-03-19 10:47:08 +01:00
virnetlink.h util: introduce virNetlinkGetNeighbor to get neighbor table entry 2018-03-15 11:22:42 +01:00
virnodesuspend.c util: Fix naming in util/virnodesuspend 2017-03-27 13:13:29 +02:00
virnodesuspend.h util: Fix naming in util/virnodesuspend 2017-03-27 13:13:29 +02:00
virnuma.c
virnuma.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virobject.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virobject.h util: Introduce and use virObjectRWUnlock 2017-08-14 21:41:59 -04:00
virpci.c build: Fix broken build on FreeBSD and OSX after recent nodedev series 2018-01-29 17:53:13 +01:00
virpci.h util: pci: Introduce virPCIGetMdevTypes helper 2018-01-29 15:34:30 +01:00
virperf.c virPerfEventIsEnabled: Accept NULL @perf 2017-05-04 16:42:25 +02:00
virperf.h perf: add emulation_faults software perf event support 2017-03-07 13:51:05 -05:00
virpidfile.c
virpidfile.h
virpolkit.c Merge WITH_POLKIT1 and WITH_POLKIT 2018-03-14 12:46:26 +01:00
virpolkit.h
virportallocator.c port allocator: make port range constant object 2018-02-22 13:52:45 +01:00
virportallocator.h port allocator: make port range constant object 2018-02-22 13:52:45 +01:00
virprobe.h util: probe: Add quiet versions of the "PROBE" macro 2018-01-03 15:21:06 +01:00
virprocess.c process: Translate "unlimited" correctly 2017-03-28 10:54:49 +02:00
virprocess.h
virqemu.c Revert "util: virqemu: introduce virQEMUBuildBufferEscape" 2017-06-12 12:45:42 +02:00
virqemu.h Revert "util: virqemu: introduce virQEMUBuildBufferEscape" 2017-06-12 12:45:42 +02:00
virrandom.c
virrandom.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virresctrl.c util: bitmap: Use VIR_SHRINK_N in virBitmapShrink 2018-02-05 16:08:57 +01:00
virresctrl.h util: Extract path formatting into virResctrlAllocDeterminePath 2018-01-31 14:51:34 +01:00
virresctrlpriv.h resctrl: Add functions to work with resctrl allocations 2018-01-25 17:16:08 +01:00
virrotatingfile.c Print hex values with '0x' prefix and octal with '0' in debug messages 2017-09-25 13:34:53 +01:00
virrotatingfile.h
virscsi.c util: Create a new virvhba module and move/rename API's 2017-02-19 06:45:09 -05:00
virscsi.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virscsihost.c util: Move scsi_host specific functions from virutil 2017-02-19 06:45:09 -05:00
virscsihost.h util: Move scsi_host specific functions from virutil 2017-02-19 06:45:09 -05:00
virscsivhost.c util: Report error if vhost-scsi device file cannot be found 2017-12-13 15:37:30 -05:00
virscsivhost.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virseclabel.c
virseclabel.h
virsecret.c util: Move virSecretUsageType to virsecret.h 2017-09-21 15:46:48 -04:00
virsecret.h util: Move virSecretUsageType to virsecret.h 2017-09-21 15:46:48 -04:00
virsexpr.c
virsexpr.h
virsocketaddr.c util: fix memory leak in virSocketAddrFormatFull 2017-05-26 12:15:13 +02:00
virsocketaddr.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virstorageencryption.c util: storage: Sanitize parsing of disk encryption XMLs 2018-03-08 14:29:50 +01:00
virstorageencryption.h util: storage: Sanitize parsing of disk encryption XMLs 2018-03-08 14:29:50 +01:00
virstoragefile.c util: storage: Sanitize parsing of disk auth XMLs 2018-03-08 14:29:49 +01:00
virstoragefile.h util: storage: Sanitize parsing of disk auth XMLs 2018-03-08 14:29:49 +01:00
virstoragefilebackend.c storage: move storage file backend framework into util directory 2018-02-09 11:05:10 +00:00
virstoragefilebackend.h storage: move storage file backend framework into util directory 2018-02-09 11:05:10 +00:00
virstring.c util: Introduce virStringListMerge 2018-01-11 18:53:04 +01:00
virstring.h util: Introduce virStringListMerge 2018-01-11 18:53:04 +01:00
virsysinfo.c virsysinfo: Use more virSkipSpacesBackwards() 2018-03-14 17:43:40 +01:00
virsysinfo.h conf: Add support for setting Chassis SMBIOS data fields 2018-02-17 07:36:46 -05:00
virsysinfopriv.h tests: sysinfo: Export virSysinfoSetup via the private header 2017-03-07 10:44:26 +01:00
virsystemd.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virsystemd.h Move machineName generation from virsystemd into domain_conf 2017-07-25 17:02:27 +02:00
virsystemdpriv.h Cache the presence of machine1 service 2017-03-06 15:44:33 +01:00
virthread.c util: gettid() is Linux-specific 2017-12-05 11:28:19 +01:00
virthread.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virthreadjob.c
virthreadjob.h
virthreadpool.c
virthreadpool.h
virtime.c virTimeBackOffWait: Avoid long periods of sleep 2017-03-16 09:21:39 +01:00
virtime.h Add functions for handling exponential backoff loops. 2016-04-15 16:54:28 +01:00
virtpm.c tpm: Use /dev/null for cancel path if none was found 2017-09-07 14:00:46 +02:00
virtpm.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virtypedparam.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virtypedparam.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
viruri.c
viruri.h util: uri: Convert port number to unsigned integer 2017-07-24 10:55:43 +02:00
virusb.c virUSBDeviceNew: Construct vroot path properly 2018-01-31 17:10:01 +01:00
virusb.h
virutil.c util: use union for sockaddr structs to avoid aliasing 2018-01-31 17:33:08 +00:00
virutil.h util: add virGetUNIXSocketPath helper 2018-01-31 15:12:53 +00:00
viruuid.c util: factor out reading file into preallocated buffer 2016-05-03 08:58:30 -04:00
viruuid.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virvhba.c util: virvhba: fix typo that breaks build on non-linux systems 2017-02-19 15:47:27 +01:00
virvhba.h util: Create a new virvhba module and move/rename API's 2017-02-19 06:45:09 -05:00
virxdrdefs.h
virxml.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virxml.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00