libvirt/src/util
Daniel P. Berrangé ce3c6ef684 util: avoid symbol clash between json libraries
The jansson and json-glib libraries both export symbols with a json_
name prefix and json_object_iter_next() clashes between them.

Unfortunately json-glib is linked in by GTK, so any app using GTK and
libvirt will get a clash, resulting in SEGV. This also affects the NSS
module provided by libvirt

Instead of directly linking to jansson, use dlopen() with the RTLD_LOCAL
flag which allows us to hide the symbols from the application that loads
libvirt or the NSS module.

Some preprocessor black magic and wrapper functions are used to redirect
calls into the dlopen resolved symbols.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-07-31 18:04:53 +01:00
..
iohelper.c util: iohelper: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02:00
Makefile.inc.am util: avoid symbol clash between json libraries 2018-07-31 18:04:53 +01:00
viralloc.c
viralloc.h util: alloc: add macros for implementing automatic cleanup functionality 2018-07-14 17:01:30 +02:00
virarch.c
virarch.h
virarptable.c util: arptable: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02: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 util: audit: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02: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 util: auth: use VIR_AUTOPTR for aggregate types 2018-07-14 17:01:30 +02:00
virauth.h
virauthconfig.c util: authconfig: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02:00
virauthconfig.h util: authconfig: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-14 17:01:30 +02:00
virbitmap.c util: bitmap: use VIR_AUTOPTR for aggregate types 2018-07-14 17:01:30 +02:00
virbitmap.h util: bitmap: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-14 17:01:30 +02:00
virbuffer.c util: buffer: use VIR_AUTOPTR for aggregate types 2018-07-27 17:19:15 +02:00
virbuffer.h util: buffer: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:19:13 +02:00
vircgroup.c Revert "util: cgroup: modify virCgroupFree to take virCgroupPtr" 2018-07-30 13:30:11 +02:00
vircgroup.h Revert "util: cgroup: modify virCgroupFree to take virCgroupPtr" 2018-07-30 13:30:11 +02:00
vircgrouppriv.h Revert "util: cgroup: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC" 2018-07-30 13:28:20 +02:00
virclosecallbacks.c conf: Rework/rename virDomainObjListFindByUUIDRef 2018-04-23 06:41:45 -04:00
virclosecallbacks.h util: Alter virCloseCallback typedef to return void 2018-04-09 18:26:03 -04:00
vircommand.c virCommandWait: Propagate dryRunCallback return value properly 2018-07-25 07:11:13 +02:00
vircommand.h util: command: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-14 17:01:30 +02: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 src: Drop most of #ifdef WITH_GNUTLS 2018-06-05 14:32:36 +02:00
vircrypto.h vircrypto: Drop virCryptoGenerateRandom 2018-06-05 10:31:19 +02:00
virdbus.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virdbus.h
virdbuspriv.h
virdevmapper.c virDevMapperGetTargetsImpl: Be tolerant to kernels without DM support 2018-07-13 16:01:05 +02:00
virdevmapper.h util: Introduce virDevMapperGetTargets 2018-04-05 09:58:44 +02:00
virdnsmasq.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
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 util: error: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:19:06 +02:00
virerror.h util: error: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:19:06 +02:00
virevent.c util: Missing 'removeTimeoutImpl' check variable inside virEventRegisterImpl() function. 2017-10-20 15:15:35 +02:00
virevent.h
vireventpoll.c util: eventpoll: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02:00
vireventpoll.h
virfcp.c util: fcp: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02:00
virfcp.h util: helper functions for fibre channel devices 2017-05-26 10:44:05 -04:00
virfdstream.c src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +02:00
virfdstream.h fdstream: Implement sparse stream 2017-05-18 07:42:13 +02:00
virfile.c util: remove unused variable inside virFileReadValueString(). 2018-07-14 20:38:56 +04:00
virfile.h util: file: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-14 17:01:30 +02:00
virfilecache.c util: filecache: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02:00
virfilecache.h util: introduce virFileCache 2017-07-26 15:31:25 +02:00
virfirewall.c util: firewall: use VIR_AUTOPTR for aggregate types 2018-07-27 17:21:08 +02:00
virfirewall.h util: firewall: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:04 +02:00
virfirewallpriv.h
virfirmware.c
virfirmware.h
virgettext.c po: provide custom make rules for po file management 2018-04-19 10:35:58 +01:00
virgettext.h
virgic.c
virgic.h gic: Remove VIR_GIC_VERSION_DEFAULT 2017-05-16 16:48:30 +02:00
virhash.c util: hash: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:19:16 +02:00
virhash.h util: hash: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:19:16 +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 util: hook: use VIR_AUTOPTR for aggregate types 2018-07-27 17:21:11 +02:00
virhook.h Replace QEmu with QEMU 2018-04-01 17:42:29 +02:00
virhostcpu.c src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +02:00
virhostcpu.h util: introduce virHostCPUGetMicrocodeVersion 2018-01-04 16:52:03 +01:00
virhostcpupriv.h
virhostdev.c util: hostdev: use VIR_AUTOPTR for aggregate types 2018-07-27 17:21:25 +02:00
virhostdev.h util: virhostdev: add virHostdevIsMdevDevice() 2018-05-14 12:12:06 -04:00
virhostmem.c util: hostmem: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-27 17:21:25 +02:00
virhostmem.h
viridentity.c util: identity: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-14 17:01:30 +02:00
viridentity.h
virinitctl.c
virinitctl.h
viriptables.c util: iptables: use VIR_AUTOFREE instead of VIR_FREE for scalar types 2018-07-27 17:21:25 +02:00
viriptables.h
viriscsi.c util: Fix virStorageBackendIQNFound() to work on FreeBSD 2018-07-25 13:23:10 +02:00
viriscsi.h virISCSIScanTargets: Allow making targets persistent 2018-07-25 07:11:13 +02:00
virjson.c util: avoid symbol clash between json libraries 2018-07-31 18:04:53 +01:00
virjson.h Remove virJSONValueNewStringLen 2018-07-18 17:54:18 +02:00
virjsoncompat.c util: avoid symbol clash between json libraries 2018-07-31 18:04:53 +01:00
virjsoncompat.h util: avoid symbol clash between json libraries 2018-07-31 18:04:53 +01:00
virkeycode.c keycodemapdb: Update submodule 2018-03-12 16:30:49 +01:00
virkeycode.h
virkeyfile.c
virkeyfile.h
virkmod.c util: kmod: use VIR_AUTOPTR for aggregate types 2018-07-27 17:21:25 +02:00
virkmod.h
virlease.c util: lease: use VIR_AUTOPTR for aggregate types 2018-07-27 17:21:25 +02:00
virlease.h
virlockspace.c util: Clean up consumers of virJSONValueArraySize 2018-05-10 14:59:15 -04:00
virlockspace.h
virlog.c src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +02:00
virlog.h log: rename virLogFlags to virLogFilterFlags to match docs 2018-05-11 17:06:55 +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 util: Rework virStringListAdd 2018-07-27 15:47:45 +02:00
virmacmap.h network: Move and rename networkMacMgrFileName 2017-08-16 14:17:57 -04:00
virmdev.c util: clang is failing to compile due to unused variables. 2018-07-27 20:46:20 -04:00
virmdev.h util: mdev: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:19:23 +02:00
virmodule.c virmodule: Fix virModuleLoad stub 2018-07-15 12:09:09 +02:00
virmodule.h util: create new virmodule.{c,h} files for dlopen support code 2018-05-03 12:47:43 +01:00
virnetdev.c src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +02: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 src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +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 util: new function virNetDevOpenvswitchInterfaceGetMaster() 2018-07-02 18:06:53 -04:00
virnetdevopenvswitch.h util: new function virNetDevOpenvswitchInterfaceGetMaster() 2018-07-02 18:06:53 -04:00
virnetdevtap.c src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +02:00
virnetdevtap.h util: Remove ATTRIBUTE_NONNULL from virNetDevTapInterfaceStats 2018-07-16 06:57:25 -04:00
virnetdevveth.c
virnetdevveth.h
virnetdevvlan.c util: netdevvlan: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:25 +02:00
virnetdevvlan.h util: netdevvlan: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:25 +02:00
virnetdevvportprofile.c src: Make virStr*cpy*() functions return an int 2018-07-23 14:27:30 +02: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
virnodesuspend.h
virnuma.c virNumaGetHugePageInfo: Return page_avail and page_free as ULL 2018-04-24 11:02:28 +02:00
virnuma.h virNumaGetHugePageInfo: Return page_avail and page_free as ULL 2018-04-24 11:02:28 +02:00
virobject.c util: fix misleading comment for virObjectLock 2018-05-15 18:43:01 +01:00
virobject.h virobject: Check if @parent is the first member in class 2018-04-18 10:04:55 +02:00
virpci.c virpci: Drop unused @ret in virPCIDeviceListDel 2018-07-27 18:07:38 +02:00
virpci.h util: pci: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:11 +02:00
virperf.c virPerfEventIsEnabled: Accept NULL @perf 2017-05-04 16:42:25 +02:00
virperf.h
virpidfile.c util:Fix with process number and pid file do not match 2018-07-04 08:10:53 +02:00
virpidfile.h
virpolkit.c Merge WITH_POLKIT1 and WITH_POLKIT 2018-03-14 12:46:26 +01:00
virpolkit.h
virportallocator.c virtportallocator: Change number of ports to 65536 2018-06-14 09:52:21 +02: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 util: fix mount issue by moving NULL value to "none" in syscall. 2018-06-26 08:05:57 +02:00
virprocess.h
virqemu.c storage: Rename encryption info variable for clarity 2018-06-26 14:02:43 -04:00
virqemu.h qemu: Delete old unused code for adding objects to qemu 2018-06-05 08:13:59 +02:00
virrandom.c virrandom: Make virRandomBits better 2018-06-05 10:31:19 +02:00
virrandom.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virresctrl.c util: Remove cbm_mask from virResctrlInfoPerType 2018-06-08 10:28:46 +02:00
virresctrl.h Move virCacheKernel enum implemetation from conf/ to util/ 2018-06-08 10:28:46 +02: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: scsi: use VIR_AUTOPTR for aggregate types 2018-07-27 17:21:24 +02:00
virscsi.h util: scsi: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:19 +02:00
virscsihost.c
virscsihost.h
virscsivhost.c util: clang is failing to compile due to unused variables. 2018-07-27 20:46:20 -04:00
virscsivhost.h util: scsivhost: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:25 +02:00
virseclabel.c
virseclabel.h virSecurityDeviceLabelDef: substitute 'norelabel' with 'relabel' 2014-07-11 10:36:02 +02:00
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 spelling in virSocketAddrParseAny docs 2018-04-05 14:57:16 -06:00
virsocketaddr.h util: introduce virSocketAddrParseAny 2018-04-05 14:50:15 -06: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 utils: storage: Add helper for checking if storage source is the same 2018-07-20 15:41:38 +02:00
virstoragefile.h utils: storage: Add helper for checking if storage source is the same 2018-07-20 15:41:38 +02:00
virstoragefilebackend.c storagefile: conditional build of virStorageFileLoadBackendModule 2018-05-03 15:42:59 +01:00
virstoragefilebackend.h storage: create separate loadable modules for storage file drivers 2018-05-03 13:17:59 +01:00
virstring.c util: Rework virStringListAdd 2018-07-27 15:47:45 +02:00
virstring.h util: Rework virStringListAdd 2018-07-27 15:47:45 +02: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
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
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: Prevent switching between zero and non-zero maxWorkers 2018-07-21 07:46:45 -04:00
virthreadpool.h
virtime.c
virtime.h
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 virTypedParamsDeserialize: set nparams to 0 in case of an error 2018-07-23 14:28:58 -04: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 util: clang is failing to compile due to unused variables. 2018-07-27 20:46:20 -04:00
virusb.h util: usb: define cleanup function using VIR_DEFINE_AUTOPTR_FUNC 2018-07-27 17:21:15 +02:00
virutil.c qemu: hostdev: Move parts of qemuHostdevHostSupportsPassthroughVFIO() into separate function 2018-06-05 08:33:13 +02:00
virutil.h qemu: hostdev: Move parts of qemuHostdevHostSupportsPassthroughVFIO() into separate function 2018-06-05 08:33:13 +02:00
viruuid.c virUUIDGenerate don't fall back to virRandomBits 2018-06-05 10:31:19 +02:00
viruuid.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virvhba.c
virvhba.h
virvsock.c util: create virvsock.c 2018-05-29 15:42:03 +02:00
virvsock.h util: create virvsock.c 2018-05-29 15:42:03 +02:00
virxdrdefs.h
virxml.c all: Replace virGetLastError with virGetLastErrorCode where we can 2018-06-05 18:44:05 +02:00
virxml.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00