[libvirt PATCH 00/19] Build with -Wdeclaration-after-statement

Most of the changes required to build with -Wdeclaration-after-statement seem pretty reasonable. Not so sure about the lack of semicolon after VIR_XPATH_NODE_AUTORESTORE https://gitlab.com/jano.tomko/libvirt/-/pipelines/173793788 Ján Tomko (19): util: virRandomInt: remove temporary variable util: virHostMemSetParameters: remove pointless variable util: virHostMem*Parameters: split out non-Linux stubs util: move declarations in virStorageFileChainLookup Move declarations before statements Split declarations from initializations Move debug statements after declarations rpc: move lock after declaration security: move chardevData declaration util: virNetDevBridgeSet: split declarations tests: sockettest: move declarations tests: authconfigtest: move declarations util: cgroup: wrap BACKEND_CALL macro in a block tests: iscsitest: split out testISCSIScanTargetsTests util: xml: use pragma in VIR_XPATH_NODE_AUTORESTORE VIR_XPATH_NODE_AUTORESTORE: remove semicolon from users src: internal: add VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT tests: use VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT build: add -Wdeclaration-after-statement meson.build | 2 +- src/bhyve/bhyve_parse_command.c | 3 +- src/conf/backup_conf.c | 2 +- src/conf/checkpoint_conf.c | 2 +- src/conf/cpu_conf.c | 2 +- src/conf/domain_conf.c | 118 +++++++++++----------- src/conf/interface_conf.c | 8 +- src/conf/netdev_vlan_conf.c | 2 +- src/conf/network_conf.c | 21 ++-- src/conf/networkcommon_conf.c | 2 +- src/conf/node_device_conf.c | 34 +++---- src/conf/numa_conf.c | 6 +- src/conf/nwfilter_conf.c | 5 +- src/conf/snapshot_conf.c | 2 +- src/conf/storage_adapter_conf.c | 2 +- src/conf/storage_conf.c | 2 +- src/conf/virsavecookie.c | 2 +- src/conf/virstorageobj.c | 3 +- src/cpu/cpu_map.c | 4 +- src/cpu/cpu_x86.c | 2 +- src/internal.h | 9 ++ src/lxc/lxc_container.c | 4 +- src/lxc/lxc_controller.c | 6 +- src/lxc/lxc_domain.c | 2 +- src/lxc/lxc_driver.c | 5 +- src/nwfilter/nwfilter_ebiptables_driver.c | 8 +- src/nwfilter/nwfilter_learnipaddr.c | 2 +- src/openvz/openvz_conf.c | 12 +-- src/qemu/qemu_capabilities.c | 2 +- src/qemu/qemu_command.c | 8 +- src/qemu/qemu_domain.c | 12 ++- src/qemu/qemu_domainjob.c | 4 +- src/qemu/qemu_migration_cookie.c | 6 +- src/qemu/qemu_monitor.c | 9 +- src/qemu/qemu_process.c | 10 +- src/remote/remote_daemon_dispatch.c | 6 +- src/remote/remote_daemon_stream.c | 13 ++- src/remote/remote_driver.c | 24 +++-- src/rpc/virnetclient.c | 8 +- src/rpc/virnetmessage.c | 4 +- src/rpc/virnetsocket.c | 9 +- src/security/security_dac.c | 20 ++-- src/security/security_selinux.c | 20 ++-- src/storage/storage_backend_disk.c | 2 +- src/storage/storage_file_fs.c | 3 +- src/storage/storage_util.c | 2 +- src/util/vircgroupbackend.h | 26 ++--- src/util/virdaemon.c | 4 +- src/util/virdbus.c | 4 +- src/util/virerror.c | 3 +- src/util/virfile.c | 14 ++- src/util/virfirewall.c | 3 +- src/util/virhostmem.c | 37 ++++--- src/util/virkeycode.c | 4 +- src/util/virnetdevbridge.c | 6 +- src/util/virnetdevip.c | 4 +- src/util/virnetlink.c | 10 +- src/util/virobject.c | 5 +- src/util/virprocess.c | 3 +- src/util/virqemu.c | 2 +- src/util/virrandom.c | 3 +- src/util/virstorageencryption.c | 4 +- src/util/virstoragefile.c | 20 ++-- src/util/virutil.c | 8 +- src/util/virxml.h | 3 +- src/vbox/vbox_common.c | 21 ++-- src/vbox/vbox_snapshot_conf.c | 8 +- src/vz/vz_driver.c | 10 +- tests/commandhelper.c | 5 +- tests/domaincapstest.c | 2 + tests/eventtest.c | 5 +- tests/nodedevmdevctltest.c | 3 +- tests/sockettest.c | 24 +++-- tests/virauthconfigtest.c | 28 ++--- tests/vircgroupmock.c | 8 +- tests/viriscsitest.c | 47 +++++---- tests/virnetsockettest.c | 2 + tests/virnettlscontexttest.c | 3 + tests/virnettlssessiontest.c | 3 + tests/virrotatingfiletest.c | 7 +- tests/virstoragetest.c | 2 + tests/virstringtest.c | 4 + tests/viruritest.c | 2 + tools/virsh-domain.c | 12 ++- tools/virsh-interface.c | 3 +- tools/virsh-network.c | 3 +- tools/virsh-nodedev.c | 2 +- tools/virsh-util.c | 3 +- tools/virsh-volume.c | 5 +- tools/virt-host-validate-common.c | 3 +- tools/wireshark/src/packet-libvirt.c | 3 +- 91 files changed, 481 insertions(+), 334 deletions(-) -- 2.26.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/util/virrandom.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/util/virrandom.c b/src/util/virrandom.c index 0487b4e70b..6417232e3a 100644 --- a/src/util/virrandom.c +++ b/src/util/virrandom.c @@ -92,8 +92,7 @@ uint32_t virRandomInt(uint32_t max) if ((max & (max - 1)) == 0) return virRandomBits(__builtin_ffs(max) - 1); - double val = virRandom(); - return val * max; + return virRandom() * max; } -- 2.26.2

It is only used inside the condition. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/util/virhostmem.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/util/virhostmem.c b/src/util/virhostmem.c index 2f60e2a250..7d1871610c 100644 --- a/src/util/virhostmem.c +++ b/src/util/virhostmem.c @@ -363,7 +363,6 @@ virHostMemSetParameters(virTypedParameterPtr params G_GNUC_UNUSED, #ifdef __linux__ size_t i; - int rc; if (virTypedParamsValidate(params, nparams, VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN, @@ -379,9 +378,7 @@ virHostMemSetParameters(virTypedParameterPtr params G_GNUC_UNUSED, return -1; for (i = 0; i < nparams; i++) { - rc = virHostMemSetParameterValue(¶ms[i]); - - if (rc < 0) + if (virHostMemSetParameterValue(¶ms[i]) < 0) return -1; } -- 2.26.2

Repeat the whole function header instead of mixing #ifdefs in the code. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/util/virhostmem.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/util/virhostmem.c b/src/util/virhostmem.c index 7d1871610c..27f192dc24 100644 --- a/src/util/virhostmem.c +++ b/src/util/virhostmem.c @@ -354,16 +354,16 @@ virHostMemParametersAreAllSupported(virTypedParameterPtr params, } #endif +#ifdef __linux__ int virHostMemSetParameters(virTypedParameterPtr params G_GNUC_UNUSED, int nparams G_GNUC_UNUSED, unsigned int flags) { - virCheckFlags(0, -1); - -#ifdef __linux__ size_t i; + virCheckFlags(0, -1); + if (virTypedParamsValidate(params, nparams, VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN, VIR_TYPED_PARAM_UINT, @@ -383,13 +383,21 @@ virHostMemSetParameters(virTypedParameterPtr params G_GNUC_UNUSED, } return 0; +} #else +int +virHostMemSetParameters(virTypedParameterPtr params G_GNUC_UNUSED, + int nparams G_GNUC_UNUSED, + unsigned int flags) +{ + virCheckFlags(0, -1); + virReportError(VIR_ERR_NO_SUPPORT, "%s", _("node set memory parameters not implemented" " on this platform")); return -1; -#endif } +#endif #ifdef __linux__ static int @@ -434,14 +442,12 @@ virHostMemGetParameterValue(const char *field, #endif #define NODE_MEMORY_PARAMETERS_NUM 8 +#ifdef __linux__ int virHostMemGetParameters(virTypedParameterPtr params G_GNUC_UNUSED, int *nparams G_GNUC_UNUSED, unsigned int flags) { - virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); - -#ifdef __linux__ unsigned int pages_to_scan; unsigned int sleep_millisecs; unsigned int merge_across_nodes; @@ -453,6 +459,8 @@ virHostMemGetParameters(virTypedParameterPtr params G_GNUC_UNUSED, size_t i; int ret; + virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); + if ((*nparams) == 0) { *nparams = NODE_MEMORY_PARAMETERS_NUM; return 0; @@ -569,13 +577,21 @@ virHostMemGetParameters(virTypedParameterPtr params G_GNUC_UNUSED, } return 0; +} #else +int +virHostMemGetParameters(virTypedParameterPtr params G_GNUC_UNUSED, + int *nparams G_GNUC_UNUSED, + unsigned int flags) +{ + virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); + virReportError(VIR_ERR_NO_SUPPORT, "%s", _("node get memory parameters not implemented" " on this platform")); return -1; -#endif } +#endif #ifdef WIN32 -- 2.26.2

Use g_autofree and move the declarations to the beginning of the block. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/util/virstoragefile.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 00d8e16ef9..f529f0faf3 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1597,7 +1597,6 @@ virStorageFileChainLookup(virStorageSourcePtr chain, { virStorageSourcePtr prev; const char *start = chain->path; - char *parentDir = NULL; bool nameIsFile = virStorageIsFile(name); if (!parent) @@ -1626,15 +1625,16 @@ virStorageFileChainLookup(virStorageSourcePtr chain, break; if (nameIsFile && virStorageSourceIsLocalStorage(chain)) { + g_autofree char *parentDir = NULL; + int result; + if (*parent && virStorageSourceIsLocalStorage(*parent)) parentDir = g_path_get_dirname((*parent)->path); else parentDir = g_strdup("."); - int result = virFileRelLinkPointsTo(parentDir, name, - chain->path); - - VIR_FREE(parentDir); + result = virFileRelLinkPointsTo(parentDir, name, + chain->path); if (result < 0) goto error; -- 2.26.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/bhyve/bhyve_parse_command.c | 3 ++- src/conf/domain_conf.c | 9 ++++++--- src/conf/network_conf.c | 3 ++- src/conf/virstorageobj.c | 3 ++- src/nwfilter/nwfilter_learnipaddr.c | 2 +- src/openvz/openvz_conf.c | 12 ++++++------ src/qemu/qemu_process.c | 5 +++-- src/remote/remote_driver.c | 3 +-- src/storage/storage_util.c | 2 +- src/util/virdbus.c | 2 +- src/util/virqemu.c | 2 +- src/vbox/vbox_common.c | 21 +++++++++++---------- src/vbox/vbox_snapshot_conf.c | 8 ++++++-- src/vz/vz_driver.c | 10 +++++----- tests/commandhelper.c | 5 ++--- tests/eventtest.c | 5 +++-- tests/vircgroupmock.c | 8 ++++++-- tools/virsh-domain.c | 4 +++- tools/virsh-interface.c | 3 ++- tools/virsh-network.c | 3 ++- tools/virsh-nodedev.c | 2 +- tools/virsh-util.c | 3 ++- tools/virt-host-validate-common.c | 3 ++- 23 files changed, 71 insertions(+), 50 deletions(-) diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_command.c index b2d2280872..67ca0ddfa3 100644 --- a/src/bhyve/bhyve_parse_command.c +++ b/src/bhyve/bhyve_parse_command.c @@ -171,12 +171,13 @@ bhyveCommandLineToArgv(const char *nativeConfig, } for (i = 0; i < line_count; i++) { - curr = lines[i]; size_t j; char **arglist = NULL; size_t args_count = 0; size_t args_alloc = 0; + curr = lines[i]; + /* iterate over each line, splitting on sequences of ' '. This code is * adapted from qemu/qemu_parse_command.c. */ while (curr && *curr != '\0') { diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 69e0439e7e..570812cefb 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2845,12 +2845,13 @@ void virDomainSoundCodecDefFree(virDomainSoundCodecDefPtr def) void virDomainSoundDefFree(virDomainSoundDefPtr def) { + size_t i; + if (!def) return; virDomainDeviceInfoClear(&def->info); - size_t i; for (i = 0; i < def->ncodecs; i++) virDomainSoundCodecDefFree(def->codecs[i]); VIR_FREE(def->codecs); @@ -3222,10 +3223,11 @@ void virDomainDeviceDefFree(virDomainDeviceDefPtr def) static void virDomainClockDefClear(virDomainClockDefPtr def) { + size_t i; + if (def->offset == VIR_DOMAIN_CLOCK_OFFSET_TIMEZONE) VIR_FREE(def->data.timezone); - size_t i; for (i = 0; i < def->ntimers; i++) VIR_FREE(def->timers[i]); VIR_FREE(def->timers); @@ -16585,9 +16587,10 @@ virDomainMemorySourceDefParseXML(xmlNodePtr node, virDomainMemoryDefPtr def) { VIR_XPATH_NODE_AUTORESTORE(ctxt); - ctxt->node = node; g_autofree char *nodemask = NULL; + ctxt->node = node; + switch ((virDomainMemoryModel) def->model) { case VIR_DOMAIN_MEMORY_MODEL_DIMM: if (virDomainParseMemory("./pagesize", "./pagesize/@unit", ctxt, diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 4221623c37..cd708e654f 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -2534,9 +2534,10 @@ virNetworkDefFormatBuf(virBufferPtr buf, if (def->forward.type != VIR_NETWORK_FORWARD_NONE) { const char *dev = NULL; + const char *mode = virNetworkForwardTypeToString(def->forward.type); + if (!def->forward.npfs) dev = virNetworkDefForwardIf(def, 0); - const char *mode = virNetworkForwardTypeToString(def->forward.type); if (!mode) { virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index f3c54d0c52..1c7d615a7a 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1114,9 +1114,10 @@ virStoragePoolObjIsDuplicate(virStoragePoolObjListPtr pools, /* UUID does not match, but if a name matches, refuse it */ obj = virStoragePoolObjFindByNameLocked(pools, def->name); if (obj) { + char uuidstr[VIR_UUID_STRING_BUFLEN]; + virObjectLock(obj); - char uuidstr[VIR_UUID_STRING_BUFLEN]; virUUIDFormat(obj->def->uuid, uuidstr); virReportError(VIR_ERR_OPERATION_FAILED, _("pool '%s' already exists with uuid %s"), diff --git a/src/nwfilter/nwfilter_learnipaddr.c b/src/nwfilter/nwfilter_learnipaddr.c index c6497450eb..c28b12f2f0 100644 --- a/src/nwfilter/nwfilter_learnipaddr.c +++ b/src/nwfilter/nwfilter_learnipaddr.c @@ -626,12 +626,12 @@ learnIPAddressThread(void *arg) pcap_close(handle); if (req->status == 0) { + g_autofree char *inetaddr = NULL; int ret; virSocketAddr sa; sa.len = sizeof(sa.data.inet4); sa.data.inet4.sin_family = AF_INET; sa.data.inet4.sin_addr.s_addr = vmaddr; - g_autofree char *inetaddr = NULL; /* It is necessary to unlock interface here to avoid updateMutex and * interface ordering deadlocks. Otherwise we are going to diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index db3df5ed5a..6d54123a35 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -233,16 +233,16 @@ openvzReadNetworkConf(virDomainDefPtr def, } else if (ret > 0) { token = strtok_r(temp, ";", &saveptr); while (token != NULL) { - /* add new device to list */ - if (VIR_ALLOC(net) < 0) - goto error; - - net->type = VIR_DOMAIN_NET_TYPE_BRIDGE; - char *p = token; char cpy_temp[32]; int len; + /* add new device to list */ + if (VIR_ALLOC(net) < 0) + goto error; + + net->type = VIR_DOMAIN_NET_TYPE_BRIDGE; + /* parse string */ do { char *next = strchr(p, ','); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 812220769d..7c312efd8b 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -522,9 +522,10 @@ qemuProcessShutdownOrReboot(virQEMUDriverPtr driver, if (priv->fakeReboot) { g_autofree char *name = g_strdup_printf("reboot-%s", vm->def->name); - qemuDomainSetFakeReboot(driver, vm, false); - virObjectRef(vm); virThread th; + + qemuDomainSetFakeReboot(driver, vm, false); + virObjectRef(vm); if (virThreadCreateFull(&th, false, qemuProcessFakeReboot, diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 0331060a2d..2402f73475 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -957,6 +957,7 @@ doRemoteOpen(virConnectPtr conn, bool tty = true; #endif int mode; + size_t i; if (inside_daemon && !conn->uri->server) { mode = REMOTE_DRIVER_MODE_DIRECT; @@ -1014,8 +1015,6 @@ doRemoteOpen(virConnectPtr conn, * feasibly it might contain variables needed by the real driver, * although that won't be the case for now). */ - size_t i; - if (conn->uri) { for (i = 0; i < conn->uri->paramsCount; i++) { virURIParamPtr var = &conn->uri->params[i]; diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index f7c09e3375..4752ab78a3 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -192,8 +192,8 @@ virStorageBackendCopyToFD(virStorageVolDefPtr vol, * blocks */ amtleft = amtread; do { - interval = ((wbytes > amtleft) ? amtleft : wbytes); int offset = amtread - amtleft; + interval = ((wbytes > amtleft) ? amtleft : wbytes); if (want_sparse && memcmp(buf+offset, zerobuf, interval) == 0) { if (lseek(fd, interval, SEEK_CUR) < 0) { diff --git a/src/util/virdbus.c b/src/util/virdbus.c index 77691cd2b0..f512031b42 100644 --- a/src/util/virdbus.c +++ b/src/util/virdbus.c @@ -999,6 +999,7 @@ virDBusMessageIterDecode(DBusMessageIter *rootiter, case DBUS_TYPE_SIGNATURE: do { char **x; + char *s; if (arrayref) { char ***xptrptr = arrayptr; if (VIR_EXPAND_N(*xptrptr, *narrayptr, 1) < 0) @@ -1008,7 +1009,6 @@ virDBusMessageIterDecode(DBusMessageIter *rootiter, } else { x = (char **)va_arg(args, char **); } - char *s; dbus_message_iter_get_basic(iter, &s); *x = g_strdup(s); VIR_DEBUG("Read basic type 'char *' varg 'char **'" diff --git a/src/util/virqemu.c b/src/util/virqemu.c index 20cb09d878..25d6fd35c5 100644 --- a/src/util/virqemu.c +++ b/src/util/virqemu.c @@ -94,9 +94,9 @@ virQEMUBuildCommandLineJSONArrayNumbered(const char *key, size_t i; for (i = 0; i < virJSONValueArraySize(array); i++) { - member = virJSONValueArrayGet((virJSONValuePtr) array, i); g_autofree char *prefix = NULL; + member = virJSONValueArrayGet((virJSONValuePtr) array, i); prefix = g_strdup_printf("%s.%zu", key, i); if (virQEMUBuildCommandLineJSONRecurse(prefix, member, buf, skipKey, onOff, diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 1adafa1e70..bae62f6967 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -653,6 +653,7 @@ static int vboxConnectGetMaxVcpus(virConnectPtr conn, const char *type G_GNUC_UNUSED) { vboxDriverPtr data = conn->privateData; + ISystemProperties *systemProperties = NULL; PRUint32 maxCPUCount = 0; int ret = -1; @@ -662,7 +663,6 @@ vboxConnectGetMaxVcpus(virConnectPtr conn, const char *type G_GNUC_UNUSED) /* VirtualBox Supports only hvm and thus the type passed to it * has no meaning, setting it to G_GNUC_UNUSED */ - ISystemProperties *systemProperties = NULL; gVBoxAPI.UIVirtualBox.GetSystemProperties(data->vboxObj, &systemProperties); if (!systemProperties) @@ -4603,6 +4603,7 @@ vboxSnapshotRedefine(virDomainPtr dom, char *nameTmpUse = NULL; bool snapshotFileExists = false; bool needToChangeStorageController = false; + char uuidtmp[VIR_UUID_STRING_BUFLEN]; int ret = -1; if (!data->vboxObj) @@ -4782,6 +4783,7 @@ vboxSnapshotRedefine(virDomainPtr dom, char *parentUuid = NULL; virVBoxSnapshotConfHardDiskPtr readOnlyDisk = NULL; vboxIID iid, parentiid; + IMedium *parentReadOnlyMedium = NULL; VBOX_IID_INITIALIZE(&iid); VBOX_IID_INITIALIZE(&parentiid); @@ -4831,7 +4833,6 @@ vboxSnapshotRedefine(virDomainPtr dom, VBOX_UTF16_FREE(formatUtf); /* This disk is already in the media registry */ - IMedium *parentReadOnlyMedium = NULL; rc = gVBoxAPI.UIMedium.GetParent(readOnlyMedium, &parentReadOnlyMedium); if (NS_FAILED(rc)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -4965,7 +4966,6 @@ vboxSnapshotRedefine(virDomainPtr dom, if (virUUIDGenerate(snapshotUuid) < 0) goto cleanup; - char uuidtmp[VIR_UUID_STRING_BUFLEN]; virUUIDFormat(snapshotUuid, uuidtmp); newSnapshotPtr->uuid = g_strdup(uuidtmp); @@ -5176,6 +5176,7 @@ vboxSnapshotRedefine(virDomainPtr dom, } } } else { + char *snapshotContent; /* Create a "fake" disk to avoid corrupting children snapshot disks. */ for (it = 0; it < def->parent.dom->ndisks; it++) { IMedium *medium = NULL; @@ -5190,6 +5191,8 @@ vboxSnapshotRedefine(virDomainPtr dom, char *format = NULL; char *tmp = NULL; vboxIID iid, parentiid; + IProgress *progress = NULL; + PRUint32 tab[1]; VBOX_IID_INITIALIZE(&iid); VBOX_IID_INITIALIZE(&parentiid); @@ -5235,8 +5238,6 @@ vboxSnapshotRedefine(virDomainPtr dom, goto cleanup; } - IProgress *progress = NULL; - PRUint32 tab[1]; tab[0] = MediumVariant_Diff; gVBoxAPI.UIMedium.CreateDiffStorage(medium, newMedium, 1, tab, &progress); @@ -5320,9 +5321,9 @@ vboxSnapshotRedefine(virDomainPtr dom, VIR_FREE(currentSnapshotXmlFilePath); currentSnapshotXmlFilePath = g_strdup_printf("%s%s.xml", machineLocationPath, snapshotMachineDesc->currentSnapshot); - char *snapshotContent = virDomainSnapshotDefFormat(NULL, def, - data->xmlopt, - VIR_DOMAIN_SNAPSHOT_FORMAT_SECURE); + snapshotContent = virDomainSnapshotDefFormat(NULL, def, + data->xmlopt, + VIR_DOMAIN_SNAPSHOT_FORMAT_SECURE); if (snapshotContent == NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to get snapshot content")); @@ -6947,6 +6948,7 @@ vboxDomainSnapshotDeleteMetadataOnly(virDomainSnapshotPtr snapshot) char *tmp = NULL; vboxIID iid, parentiid; resultCodeUnion resultCode; + PRUint32 tab[1]; VBOX_IID_INITIALIZE(&iid); VBOX_IID_INITIALIZE(&parentiid); @@ -7004,7 +7006,6 @@ vboxDomainSnapshotDeleteMetadataOnly(virDomainSnapshotPtr snapshot) VBOX_UTF16_FREE(formatUtf16); VBOX_UTF16_FREE(newLocation); - PRUint32 tab[1]; tab[0] = MediumVariant_Diff; gVBoxAPI.UIMedium.CreateDiffStorage(medium, newMedium, 1, tab, &progress); @@ -7536,12 +7537,12 @@ vboxConnectListAllDomains(virConnectPtr conn, for (i = 0; i < machines.count; i++) { IMachine *machine = machines.items[i]; + PRBool isAccessible = PR_FALSE; int id = -1; if (!machine) continue; - PRBool isAccessible = PR_FALSE; gVBoxAPI.UIMachine.GetAccessible(machine, &isAccessible); if (!isAccessible) diff --git a/src/vbox/vbox_snapshot_conf.c b/src/vbox/vbox_snapshot_conf.c index 6b95311328..ee644e1e2d 100644 --- a/src/vbox/vbox_snapshot_conf.c +++ b/src/vbox/vbox_snapshot_conf.c @@ -1286,8 +1286,10 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath, for (i = 0; i < nodeSize; i++) { xmlNodePtr node = nodes[i]; + xmlNodePtr sourceNode; + xPathContext->node = node; - xmlNodePtr sourceNode = virXPathNode("./source", xPathContext); + sourceNode = virXPathNode("./source", xPathContext); if (sourceNode) ret[i] = virXMLPropString(sourceNode, "file"); } @@ -1347,8 +1349,10 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath, for (i = 0; i < nodeSize; i++) { xmlNodePtr node = nodes[i]; + xmlNodePtr sourceNode; + xPathContext->node = node; - xmlNodePtr sourceNode = virXPathNode("./source", xPathContext); + sourceNode = virXPathNode("./source", xPathContext); if (sourceNode) ret[i] = virXMLPropString(sourceNode, "file"); } diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 1f9c4c79c0..40b1828eb2 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -112,6 +112,8 @@ vzBuildCapabilities(void) }; size_t i, j, k; + G_STATIC_ASSERT(G_N_ELEMENTS(archs) == G_N_ELEMENTS(emulators)); + if ((caps = virCapabilitiesNew(virArchFromHost(), false, false)) == NULL) return NULL; @@ -122,8 +124,6 @@ vzBuildCapabilities(void) if (virCapabilitiesInitCaches(caps) < 0) goto error; - G_STATIC_ASSERT(G_N_ELEMENTS(archs) == G_N_ELEMENTS(emulators)); - for (i = 0; i < G_N_ELEMENTS(ostypes); i++) for (j = 0; j < G_N_ELEMENTS(archs); j++) for (k = 0; k < G_N_ELEMENTS(emulators); k++) @@ -220,12 +220,12 @@ vzConnectGetCapabilities(virConnectPtr conn) static int vzDomainDefAddDefaultInputDevices(virDomainDefPtr def) { - if (def->ngraphics == 0) - return 0; - int bus = IS_CT(def) ? VIR_DOMAIN_INPUT_BUS_PARALLELS : VIR_DOMAIN_INPUT_BUS_PS2; + if (def->ngraphics == 0) + return 0; + if (virDomainDefMaybeAddInput(def, VIR_DOMAIN_INPUT_TYPE_MOUSE, bus) < 0) diff --git a/tests/commandhelper.c b/tests/commandhelper.c index b366483771..05f577730f 100644 --- a/tests/commandhelper.c +++ b/tests/commandhelper.c @@ -74,6 +74,8 @@ int main(int argc, char **argv) { char c; bool daemonize_check = false; size_t daemonize_retries = 3; + char buf[1024]; + ssize_t got; if (!log) return ret; @@ -167,9 +169,6 @@ int main(int argc, char **argv) { usleep(100*1000); } - char buf[1024]; - ssize_t got; - fprintf(stdout, "BEGIN STDOUT\n"); fflush(stdout); fprintf(stderr, "BEGIN STDERR\n"); diff --git a/tests/eventtest.c b/tests/eventtest.c index 06b5e7b20c..4a23bd6e62 100644 --- a/tests/eventtest.c +++ b/tests/eventtest.c @@ -89,10 +89,11 @@ G_GNUC_PRINTF(3, 4) testEventReport(const char *name, bool failed, const char *msg, ...) { va_list vargs; - va_start(vargs, msg); char *str = NULL; struct testEventResultData data; + va_start(vargs, msg); + if (msg) str = g_strdup_vprintf(msg, vargs); @@ -325,6 +326,7 @@ mymain(void) size_t i; pthread_t eventThread; char one = '1'; + char *debugEnv = getenv("LIBVIRT_DEBUG"); for (i = 0; i < NUM_FDS; i++) { if (virPipeQuiet(handles[i].pipeFD) < 0) { @@ -333,7 +335,6 @@ mymain(void) } } - char *debugEnv = getenv("LIBVIRT_DEBUG"); if (debugEnv && *debugEnv && (virLogSetDefaultPriority(virLogParseDefaultPriority(debugEnv)) < 0)) { fprintf(stderr, "Invalid log level setting.\n"); diff --git a/tests/vircgroupmock.c b/tests/vircgroupmock.c index 66b8c01852..2da60f886a 100644 --- a/tests/vircgroupmock.c +++ b/tests/vircgroupmock.c @@ -467,8 +467,10 @@ int access(const char *path, int mode) init_syms(); if (STRPREFIX(path, SYSFS_CGROUP_PREFIX)) { - init_sysfs(); char *newpath; + + init_sysfs(); + if (asprintf(&newpath, "%s%s", fakesysfscgroupdir, path + strlen(SYSFS_CGROUP_PREFIX)) < 0) { @@ -534,8 +536,10 @@ int mkdir(const char *path, mode_t mode) init_syms(); if (STRPREFIX(path, SYSFS_CGROUP_PREFIX)) { - init_sysfs(); char *newpath; + + init_sysfs(); + if (asprintf(&newpath, "%s%s", fakesysfscgroupdir, path + strlen(SYSFS_CGROUP_PREFIX)) < 0) { diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 286cf79671..7ce848f92e 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -3794,8 +3794,10 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd) goto error; for (i = 0; i < nvol_nodes; i++) { - ctxt->node = vol_nodes[i]; virshUndefineVolume vol; + + ctxt->node = vol_nodes[i]; + VIR_FREE(source); VIR_FREE(target); VIR_FREE(pool); diff --git a/tools/virsh-interface.c b/tools/virsh-interface.c index b8e424091d..a6b52726c9 100644 --- a/tools/virsh-interface.c +++ b/tools/virsh-interface.c @@ -49,8 +49,9 @@ virshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd, const char *n = NULL; bool is_mac = false; virMacAddr dummy; + virshControlPtr priv = ctl->privData; + virCheckFlags(VIRSH_BYNAME | VIRSH_BYMAC, NULL); - virshControlPtr priv = ctl->privData; if (!optname) optname = "interface"; diff --git a/tools/virsh-network.c b/tools/virsh-network.c index f2a5d09732..f0f5358625 100644 --- a/tools/virsh-network.c +++ b/tools/virsh-network.c @@ -69,8 +69,9 @@ virshCommandOptNetworkBy(vshControl *ctl, const vshCmd *cmd, virNetworkPtr network = NULL; const char *n = NULL; const char *optname = "network"; + virshControlPtr priv = ctl->privData; + virCheckFlags(VIRSH_BYUUID | VIRSH_BYNAME, NULL); - virshControlPtr priv = ctl->privData; if (vshCommandOptStringReq(ctl, cmd, optname, &n) < 0) return NULL; diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c index e576b3c847..e9414f429f 100644 --- a/tools/virsh-nodedev.c +++ b/tools/virsh-nodedev.c @@ -285,6 +285,7 @@ virshNodeDeviceListCollect(vshControl *ctl, char **caps = NULL; int ncaps = 0; bool match = false; + size_t j, k; device = list->devices[i]; @@ -305,7 +306,6 @@ virshNodeDeviceListCollect(vshControl *ctl, /* Check if the device's capability matches with provided * capabilities. */ - size_t j, k; for (j = 0; j < ncaps; j++) { for (k = 0; k < ncapnames; k++) { if (STREQ(caps[j], capnames[k])) { diff --git a/tools/virsh-util.c b/tools/virsh-util.c index 932d6d0849..3b375c60f1 100644 --- a/tools/virsh-util.c +++ b/tools/virsh-util.c @@ -32,8 +32,9 @@ virshLookupDomainInternal(vshControl *ctl, { virDomainPtr dom = NULL; int id; + virshControlPtr priv = ctl->privData; + virCheckFlags(VIRSH_BYID | VIRSH_BYUUID | VIRSH_BYNAME, NULL); - virshControlPtr priv = ctl->privData; /* try it by ID */ if (flags & VIRSH_BYID) { diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c index f68c9c7c96..e0e22a133a 100644 --- a/tools/virt-host-validate-common.c +++ b/tools/virt-host-validate-common.c @@ -172,9 +172,10 @@ int virHostValidateNamespace(const char *hvname, virHostValidateLevel level, const char *hint) { - virHostMsgCheck(hvname, "for namespace %s", ns_name); char nspath[100]; + virHostMsgCheck(hvname, "for namespace %s", ns_name); + g_snprintf(nspath, sizeof(nspath), "/proc/self/ns/%s", ns_name); if (access(nspath, F_OK) < 0) { -- 2.26.2

Split those initializations that depend on a statement above them. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/network_conf.c | 4 +++- src/conf/nwfilter_conf.c | 5 ++++- src/lxc/lxc_controller.c | 6 ++++-- src/lxc/lxc_driver.c | 5 +++-- src/qemu/qemu_command.c | 8 ++++++-- src/qemu/qemu_process.c | 5 +++-- src/rpc/virnetmessage.c | 4 +++- src/rpc/virnetsocket.c | 9 ++++++--- src/util/virdaemon.c | 4 +++- src/util/virerror.c | 3 ++- src/util/virfile.c | 14 ++++++++++---- src/util/virkeycode.c | 4 +++- src/util/virnetlink.c | 10 +++++++--- src/util/virutil.c | 8 +++++--- tests/nodedevmdevctltest.c | 3 ++- tests/sockettest.c | 8 +++++--- tests/virrotatingfiletest.c | 7 +++++-- tools/virsh-domain.c | 8 +++++--- tools/virsh-volume.c | 5 +++-- tools/wireshark/src/packet-libvirt.c | 3 ++- 20 files changed, 84 insertions(+), 39 deletions(-) diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index cd708e654f..d9a198a372 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -1932,11 +1932,13 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt, addrMatch = false; for (j = 0; j < nips; j++) { virNetworkIPDefPtr def2 = &def->ips[j]; + int prefix; + if (VIR_SOCKET_ADDR_FAMILY(gateway) != VIR_SOCKET_ADDR_FAMILY(&def2->address)) { continue; } - int prefix = virNetworkIPDefPrefix(def2); + prefix = virNetworkIPDefPrefix(def2); virSocketAddrMaskByPrefix(&def2->address, prefix, &testAddr); virSocketAddrMaskByPrefix(gateway, prefix, &testGw); if (VIR_SOCKET_ADDR_VALID(&testAddr) && diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 02722abc32..779da3dddb 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2864,10 +2864,13 @@ virNWFilterRuleDefDetailsFormat(virBufferPtr buf, nwItemDesc *item; while (att[i].name) { + virNWFilterEntryItemFlags flags; + VIR_WARNINGS_NO_CAST_ALIGN item = (nwItemDesc *)((char *)def + att[i].dataIdx); VIR_WARNINGS_RESET - virNWFilterEntryItemFlags flags = item->flags; + + flags = item->flags; if ((flags & NWFILTER_ENTRY_ITEM_FLAG_EXISTS)) { if (!typeShown) { virBufferAsprintf(buf, "<%s", type); diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index ae6b737b60..0a496fb788 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -1490,11 +1490,12 @@ static int virLXCControllerPopulateDevices(virLXCControllerPtr ctrl) /* Populate /dev/ with a few important bits */ for (i = 0; i < G_N_ELEMENTS(devs); i++) { g_autofree char *path = NULL; + dev_t dev; path = g_strdup_printf("/%s/%s.dev/%s", LXC_STATE_DIR, ctrl->def->name, devs[i].path); - dev_t dev = makedev(devs[i].maj, devs[i].min); + dev = makedev(devs[i].maj, devs[i].min); if (mknod(path, S_IFCHR, dev) < 0 || chmod(path, devs[i].mode)) { virReportSystemError(errno, @@ -1990,11 +1991,12 @@ static int virLXCControllerMoveInterfaces(virLXCControllerPtr ctrl) for (i = 0; i < def->nhostdevs; i ++) { virDomainHostdevDefPtr hdev = def->hostdevs[i]; + virDomainHostdevCaps hdcaps; if (hdev->mode != VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES) continue; - virDomainHostdevCaps hdcaps = hdev->source.caps; + hdcaps = hdev->source.caps; if (hdcaps.type != VIR_DOMAIN_HOSTDEV_CAPS_TYPE_NET) continue; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 1cdd6ee455..a530488dd2 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1440,6 +1440,7 @@ static virSecurityManagerPtr lxcSecurityInit(virLXCDriverConfigPtr cfg) { unsigned int flags = VIR_SECURITY_MANAGER_PRIVILEGED; + virSecurityManagerPtr mgr; VIR_INFO("lxcSecurityInit %s", cfg->securityDriverName); @@ -1448,8 +1449,8 @@ lxcSecurityInit(virLXCDriverConfigPtr cfg) if (cfg->securityRequireConfined) flags |= VIR_SECURITY_MANAGER_REQUIRE_CONFINED; - virSecurityManagerPtr mgr = virSecurityManagerNew(cfg->securityDriverName, - LXC_DRIVER_NAME, flags); + mgr = virSecurityManagerNew(cfg->securityDriverName, + LXC_DRIVER_NAME, flags); if (!mgr) goto error; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0655d8359d..fa33c4ab28 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4232,7 +4232,9 @@ qemuBuildVgaVideoCommand(virCommandPtr cmd, virDomainVideoDefPtr video, virQEMUCapsPtr qemuCaps) { + const char *dev; const char *vgastr = qemuVideoTypeToString(video->type); + if (!vgastr || STREQ(vgastr, "")) { virReportError(VIR_ERR_INTERNAL_ERROR, _("invalid model for video type '%s'"), @@ -4253,7 +4255,7 @@ qemuBuildVgaVideoCommand(virCommandPtr cmd, * See 'Graphics Devices' section in docs/qdev-device-use.txt in * QEMU repository. */ - const char *dev = qemuDeviceVideoTypeToString(video->type); + dev = qemuDeviceVideoTypeToString(video->type); if (video->type == VIR_DOMAIN_VIDEO_TYPE_QXL && (video->vram || video->ram)) { @@ -4935,9 +4937,11 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, if (dev->data.nix.listen && (flags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { + int fd; + if (qemuSecuritySetSocketLabel(secManager, (virDomainDefPtr)def) < 0) return NULL; - int fd = qemuOpenChrChardevUNIXSocket(dev); + fd = qemuOpenChrChardevUNIXSocket(dev); if (qemuSecurityClearSocketLabel(secManager, (virDomainDefPtr)def) < 0) { VIR_FORCE_CLOSE(fd); return NULL; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 7c312efd8b..ad4f190b7e 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5018,11 +5018,12 @@ qemuProcessSetupRawIO(virQEMUDriverPtr driver, /* If rawio not already set, check hostdevs as well */ if (!rawio) { for (i = 0; i < vm->def->nhostdevs; i++) { + virDomainHostdevSubsysSCSIPtr scsisrc; + if (!virHostdevIsSCSIDevice(vm->def->hostdevs[i])) continue; - virDomainHostdevSubsysSCSIPtr scsisrc = - &vm->def->hostdevs[i]->source.subsys.u.scsi; + scsisrc = &vm->def->hostdevs[i]->source.subsys.u.scsi; if (scsisrc->rawio == VIR_TRISTATE_BOOL_YES) { rawio = true; break; diff --git a/src/rpc/virnetmessage.c b/src/rpc/virnetmessage.c index 9d2a8a6d7d..c4ddafc01d 100644 --- a/src/rpc/virnetmessage.c +++ b/src/rpc/virnetmessage.c @@ -511,6 +511,8 @@ int virNetMessageEncodePayloadEmpty(virNetMessagePtr msg) void virNetMessageSaveError(virNetMessageErrorPtr rerr) { + virErrorPtr verr; + /* This func may be called several times & the first * error is the one we want because we don't want * cleanup code overwriting the first one. @@ -519,7 +521,7 @@ void virNetMessageSaveError(virNetMessageErrorPtr rerr) return; memset(rerr, 0, sizeof(*rerr)); - virErrorPtr verr = virGetLastError(); + verr = virGetLastError(); if (verr) { rerr->code = verr->code; rerr->domain = verr->domain; diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index 977d2875fe..f3aba01fd5 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -325,6 +325,8 @@ int virNetSocketNewListenTCP(const char *nodename, int bindErrno = 0; virSocketAddr tmp_addr; int port = 0; + int e; + struct addrinfo *runp; *retsocks = NULL; *nretsocks = 0; @@ -346,7 +348,7 @@ int virNetSocketNewListenTCP(const char *nodename, virSocketAddrIsWildcard(&tmp_addr))) hints.ai_flags |= AI_ADDRCONFIG; - int e = getaddrinfo(nodename, service, &hints, &ai); + e = getaddrinfo(nodename, service, &hints, &ai); if (e != 0) { virReportError(VIR_ERR_SYSTEM_ERROR, _("Unable to resolve address '%s' service '%s': %s"), @@ -354,7 +356,7 @@ int virNetSocketNewListenTCP(const char *nodename, return -1; } - struct addrinfo *runp = ai; + runp = ai; while (runp) { virSocketAddr addr; @@ -587,6 +589,7 @@ int virNetSocketNewConnectTCP(const char *nodename, virSocketAddr remoteAddr; struct addrinfo *runp; int savedErrno = ENOENT; + int e; *retsock = NULL; @@ -598,7 +601,7 @@ int virNetSocketNewConnectTCP(const char *nodename, hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG | AI_V4MAPPED; hints.ai_socktype = SOCK_STREAM; - int e = getaddrinfo(nodename, service, &hints, &ai); + e = getaddrinfo(nodename, service, &hints, &ai); if (e != 0) { virReportError(VIR_ERR_SYSTEM_ERROR, _("Unable to resolve address '%s' service '%s': %s"), diff --git a/src/util/virdaemon.c b/src/util/virdaemon.c index 31cc24e703..a02665dce8 100644 --- a/src/util/virdaemon.c +++ b/src/util/virdaemon.c @@ -43,10 +43,12 @@ int virDaemonForkIntoBackground(const char *argv0) { int statuspipe[2]; + pid_t pid; + if (virPipeQuiet(statuspipe) < 0) return -1; - pid_t pid = fork(); + pid = fork(); switch (pid) { case 0: { diff --git a/src/util/virerror.c b/src/util/virerror.c index 774c36bca3..507a29f50f 100644 --- a/src/util/virerror.c +++ b/src/util/virerror.c @@ -1335,13 +1335,14 @@ void virReportSystemErrorFull(int domcode, if (fmt) { va_list args; + size_t len; int n; va_start(args, fmt); n = g_vsnprintf(msgDetailBuf, sizeof(msgDetailBuf), fmt, args); va_end(args); - size_t len = strlen(errnoDetail); + len = strlen(errnoDetail); if (0 <= n && n + 2 + len < sizeof(msgDetailBuf)) { strcpy(msgDetailBuf + n, ": "); n += 2; diff --git a/src/util/virfile.c b/src/util/virfile.c index 6ada3a708c..59bdbc121b 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -1412,13 +1412,16 @@ virFileReadLimFD(int fd, int maxlen, char **buf) int virFileReadAll(const char *path, int maxlen, char **buf) { - int fd = open(path, O_RDONLY); + int fd; + int len; + + fd = open(path, O_RDONLY); if (fd < 0) { virReportSystemError(errno, _("Failed to open file '%s'"), path); return -1; } - int len = virFileReadLimFD(fd, maxlen, buf); + len = virFileReadLimFD(fd, maxlen, buf); VIR_FORCE_CLOSE(fd); if (len < 0) { virReportSystemError(errno, _("Failed to read file '%s'"), path); @@ -1431,11 +1434,14 @@ virFileReadAll(const char *path, int maxlen, char **buf) int virFileReadAllQuiet(const char *path, int maxlen, char **buf) { - int fd = open(path, O_RDONLY); + int fd; + int len; + + fd = open(path, O_RDONLY); if (fd < 0) return -errno; - int len = virFileReadLimFD(fd, maxlen, buf); + len = virFileReadLimFD(fd, maxlen, buf); VIR_FORCE_CLOSE(fd); if (len < 0) return -errno; diff --git a/src/util/virkeycode.c b/src/util/virkeycode.c index 1475f69b84..8ca1b573d3 100644 --- a/src/util/virkeycode.c +++ b/src/util/virkeycode.c @@ -88,11 +88,13 @@ int virKeycodeValueFromString(virKeycodeSet codeset, size_t i; for (i = 0; i < VIR_KEYMAP_ENTRY_MAX; i++) { + const char *name; + if (!virKeymapNames[codeset] || !virKeymapValues[codeset]) continue; - const char *name = virKeymapNames[codeset][i]; + name = virKeymapNames[codeset][i]; if (name && STREQ_NULLABLE(name, keyname)) return virKeymapValues[codeset][i]; diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c index d23ed95b78..652ed2c1c6 100644 --- a/src/util/virnetlink.c +++ b/src/util/virnetlink.c @@ -817,10 +817,12 @@ virNetlinkEventServerUnlock(virNetlinkEventSrvPrivatePtr driver) static int virNetlinkEventRemoveClientPrimitive(size_t i, unsigned int protocol) { + virNetlinkEventRemoveCallback removeCB; + if (protocol >= MAX_LINKS) return -EINVAL; - virNetlinkEventRemoveCallback removeCB = server[protocol]->handles[i].removeCB; + removeCB = server[protocol]->handles[i].removeCB; if (removeCB) { (removeCB)(server[protocol]->handles[i].watch, @@ -890,11 +892,13 @@ virNetlinkEventCallback(int watch, int virNetlinkEventServiceStop(unsigned int protocol) { + virNetlinkEventSrvPrivatePtr srv; + size_t i; + if (protocol >= MAX_LINKS) return -EINVAL; - virNetlinkEventSrvPrivatePtr srv = server[protocol]; - size_t i; + srv = server[protocol]; VIR_INFO("stopping netlink event service"); diff --git a/src/util/virutil.c b/src/util/virutil.c index ff664ea778..8639176fdc 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -371,6 +371,7 @@ int virDiskNameParse(const char *name, int *disk, int *partition) int idx = 0; static char const* const drive_prefix[] = {"fd", "hd", "vd", "sd", "xvd", "ubd"}; size_t i; + size_t n_digits; for (i = 0; i < G_N_ELEMENTS(drive_prefix); i++) { if (STRPREFIX(name, drive_prefix[i])) { @@ -391,8 +392,8 @@ int virDiskNameParse(const char *name, int *disk, int *partition) ptr++; } - /* Count the trailing digits. */ - size_t n_digits = strspn(ptr, "0123456789"); + /* Count the trailing digits */ + n_digits = strspn(ptr, "0123456789"); if (ptr[n_digits] != '\0') return -1; @@ -1911,10 +1912,11 @@ static int virPipeImpl(int fds[2], bool nonblock, bool errreport) { #ifdef HAVE_PIPE2 + int rv; int flags = O_CLOEXEC; if (nonblock) flags |= O_NONBLOCK; - int rv = pipe2(fds, flags); + rv = pipe2(fds, flags); #else /* !HAVE_PIPE2 */ # ifdef WIN32 int rv = _pipe(fds, 4096, _O_BINARY); diff --git a/tests/nodedevmdevctltest.c b/tests/nodedevmdevctltest.c index 9780553a3a..57c1ad4f46 100644 --- a/tests/nodedevmdevctltest.c +++ b/tests/nodedevmdevctltest.c @@ -203,10 +203,11 @@ fakeParentDevice(void) static int addDevice(virNodeDeviceDefPtr def) { + virNodeDeviceObjPtr obj; if (!def) return -1; - virNodeDeviceObjPtr obj = virNodeDeviceObjListAssignDef(driver->devs, def); + obj = virNodeDeviceObjListAssignDef(driver->devs, def); if (!obj) { virNodeDeviceDefFree(def); diff --git a/tests/sockettest.c b/tests/sockettest.c index 29a565de40..a3c27421fc 100644 --- a/tests/sockettest.c +++ b/tests/sockettest.c @@ -90,6 +90,7 @@ testRange(const char *saddrstr, const char *eaddrstr, virSocketAddr saddr; virSocketAddr eaddr; virSocketAddr netaddr; + int gotsize; if (virSocketAddrParse(&saddr, saddrstr, AF_UNSPEC) < 0) return -1; @@ -98,8 +99,8 @@ testRange(const char *saddrstr, const char *eaddrstr, if (netstr && virSocketAddrParse(&netaddr, netstr, AF_UNSPEC) < 0) return -1; - int gotsize = virSocketAddrGetRange(&saddr, &eaddr, - netstr ? &netaddr : NULL, prefix); + gotsize = virSocketAddrGetRange(&saddr, &eaddr, + netstr ? &netaddr : NULL, prefix); VIR_DEBUG("Size want %d vs got %d", size, gotsize); if (pass) { /* fail if virSocketAddrGetRange returns failure, or unexpected size */ @@ -136,6 +137,7 @@ static int testNetmask(const char *addr1str, const char *addr2str, virSocketAddr addr1; virSocketAddr addr2; virSocketAddr netmask; + int ret; if (virSocketAddrParse(&addr1, addr1str, AF_UNSPEC) < 0) return -1; @@ -144,7 +146,7 @@ static int testNetmask(const char *addr1str, const char *addr2str, if (virSocketAddrParse(&netmask, netmaskstr, AF_UNSPEC) < 0) return -1; - int ret = virSocketAddrCheckNetmask(&addr1, &addr2, &netmask); + ret = virSocketAddrCheckNetmask(&addr1, &addr2, &netmask); if (ret <= 0) { return pass ? -1 : 0; diff --git a/tests/virrotatingfiletest.c b/tests/virrotatingfiletest.c index df392f374e..f8dd7daefe 100644 --- a/tests/virrotatingfiletest.c +++ b/tests/virrotatingfiletest.c @@ -124,9 +124,12 @@ static int testRotatingFileInitOne(const char *filename, VIR_DEBUG("Deleting %s", filename); unlink(filename); } else { - VIR_DEBUG("Creating %s size %zu", filename, (size_t)size); char buf[1024]; - int fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0700); + int fd; + + VIR_DEBUG("Creating %s size %zu", filename, (size_t)size); + + fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0700); if (fd < 0) { fprintf(stderr, "Cannot create %s\n", filename); return -1; diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 7ce848f92e..29fa3f607e 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -1757,6 +1757,7 @@ virshBlockJobWaitInit(vshControl *ctl, unsigned int timeout, bool async_abort) { + virConnectDomainEventGenericCallback cb; virshBlockJobWaitDataPtr ret; virshControlPtr priv = ctl->privData; @@ -1774,8 +1775,7 @@ virshBlockJobWaitInit(vshControl *ctl, ret->status = -1; - virConnectDomainEventGenericCallback cb = - VIR_DOMAIN_EVENT_CALLBACK(virshBlockJobStatusHandler); + cb = VIR_DOMAIN_EVENT_CALLBACK(virshBlockJobStatusHandler); if ((ret->cb_id = virConnectDomainEventRegisterAny(priv->conn, dom, VIR_DOMAIN_EVENT_ID_BLOCK_JOB, @@ -7117,12 +7117,14 @@ virshParseCPUList(vshControl *ctl, int *cpumaplen, return NULL; virBitmapSetAll(map); } else { + int lastcpu; + if (virBitmapParse(cpulist, &map, 1024) < 0 || virBitmapIsAllClear(map)) { vshError(ctl, _("Invalid cpulist '%s'"), cpulist); goto cleanup; } - int lastcpu = virBitmapLastSetBit(map); + lastcpu = virBitmapLastSetBit(map); if (lastcpu >= maxcpu) { vshError(ctl, _("CPU %d in cpulist '%s' exceed the maxcpu %d"), lastcpu, cpulist, maxcpu); diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c index e04e2db096..ae7c643d3b 100644 --- a/tools/virsh-volume.c +++ b/tools/virsh-volume.c @@ -275,12 +275,14 @@ cmdVolCreateAs(vshControl *ctl, const vshCmd *cmd) /* Convert the snapshot parameters into backingStore XML */ if (snapshotStrVol) { + virStorageVolPtr snapVol; + char *snapshotStrVolPath; /* Lookup snapshot backing volume. Try the backing-vol * parameter as a name */ vshDebug(ctl, VSH_ERR_DEBUG, "%s: Look up backing store volume '%s' as name\n", cmd->def->name, snapshotStrVol); - virStorageVolPtr snapVol = virStorageVolLookupByName(pool, snapshotStrVol); + snapVol = virStorageVolLookupByName(pool, snapshotStrVol); if (snapVol) vshDebug(ctl, VSH_ERR_DEBUG, "%s: Backing store volume found using '%s' as name\n", @@ -315,7 +317,6 @@ cmdVolCreateAs(vshControl *ctl, const vshCmd *cmd) goto cleanup; } - char *snapshotStrVolPath; if ((snapshotStrVolPath = virStorageVolGetPath(snapVol)) == NULL) { virStorageVolFree(snapVol); goto cleanup; diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c index 2b499d2cf2..89dd18080e 100644 --- a/tools/wireshark/src/packet-libvirt.c +++ b/tools/wireshark/src/packet-libvirt.c @@ -428,11 +428,12 @@ dissect_libvirt_payload(tvbuff_t *tvb, proto_tree *tree, if (status == VIR_NET_OK) { const vir_dissector_index_t *pds = get_program_data(prog, VIR_PROGRAM_DISSECTORS); const gsize *len = get_program_data(prog, VIR_PROGRAM_DISSECTORS_LEN); + vir_xdr_dissector_t xd; if (!len) goto unknown; - vir_xdr_dissector_t xd = find_payload_dissector(proc, type, pds, *len); + xd = find_payload_dissector(proc, type, pds, *len); if (xd == NULL) goto unknown; dissect_libvirt_payload_xdr_data(tvb, tree, payload_length, status, xd); -- 2.26.2

Many of our functions start with a DEBUG statement. Move the statements after declarations to appease our coding style. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/lxc/lxc_container.c | 4 +++- src/nwfilter/nwfilter_ebiptables_driver.c | 8 ++++++-- src/qemu/qemu_domain.c | 6 ++++-- src/qemu/qemu_monitor.c | 9 ++++++--- src/remote/remote_daemon_dispatch.c | 6 +++--- src/remote/remote_daemon_stream.c | 13 ++++++++----- src/remote/remote_driver.c | 21 ++++++++++++--------- src/rpc/virnetclient.c | 4 +++- src/storage/storage_backend_disk.c | 2 +- src/storage/storage_file_fs.c | 3 ++- src/util/virdbus.c | 2 +- src/util/virfirewall.c | 3 ++- src/util/virnetdevip.c | 4 +++- src/util/virobject.c | 5 +++-- src/util/virprocess.c | 3 ++- src/util/virstoragefile.c | 8 ++++---- 16 files changed, 63 insertions(+), 38 deletions(-) diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 6e98f133a9..ede419c275 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -291,8 +291,10 @@ static int lxcContainerSetupFDs(int *ttyfd, */ for (j = i + 1; j < npassFDs; j++) { if (passFDs[j] == wantfd) { - VIR_DEBUG("Clash %zu", j); int newfd = dup(passFDs[j]); + + VIR_DEBUG("Clash %zu", j); + if (newfd < 0) { virReportSystemError(errno, _("Cannot move fd %d out of the way"), diff --git a/src/nwfilter/nwfilter_ebiptables_driver.c b/src/nwfilter/nwfilter_ebiptables_driver.c index 6aefbe226b..e73aa82eb4 100644 --- a/src/nwfilter/nwfilter_ebiptables_driver.c +++ b/src/nwfilter/nwfilter_ebiptables_driver.c @@ -2655,8 +2655,10 @@ ebtablesRemoveSubChainsQuery(virFirewallPtr fw, const char *chainprefixes = opaque; for (i = 0; lines[i] != NULL; i++) { - VIR_DEBUG("Considering '%s'", lines[i]); char *tmp = strstr(lines[i], "-j "); + + VIR_DEBUG("Considering '%s'", lines[i]); + if (!tmp) continue; tmp = tmp + 3; @@ -2757,8 +2759,10 @@ ebtablesRenameTmpSubAndRootChainsQuery(virFirewallPtr fw, char newchain[MAX_CHAINNAME_LENGTH]; for (i = 0; lines[i] != NULL; i++) { - VIR_DEBUG("Considering '%s'", lines[i]); char *tmp = strstr(lines[i], "-j "); + + VIR_DEBUG("Considering '%s'", lines[i]); + if (!tmp) continue; tmp = tmp + 3; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e5d6430a89..56999c2c46 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6222,12 +6222,14 @@ int qemuDomainLogContextWrite(qemuDomainLogContextPtr ctxt, ssize_t qemuDomainLogContextRead(qemuDomainLogContextPtr ctxt, char **msg) { + char *buf; + size_t buflen; + VIR_DEBUG("Context read %p manager=%p inode=%llu pos=%llu", ctxt, ctxt->manager, (unsigned long long)ctxt->inode, (unsigned long long)ctxt->pos); - char *buf; - size_t buflen; + if (ctxt->manager) { buf = virLogManagerDomainReadLogFile(ctxt->manager, ctxt->path, diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 637361d24d..718ac50c08 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -2838,8 +2838,9 @@ qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, int fd, const char *fdname) { + int ret; + VIR_DEBUG("device=%s fd=%d fdname=%s", devicestr, fd, NULLSTR(fdname)); - int ret; QEMU_CHECK_MONITOR(mon); @@ -3458,9 +3459,10 @@ qemuMonitorOpenGraphics(qemuMonitorPtr mon, const char *fdname, bool skipauth) { + int ret; + VIR_DEBUG("protocol=%s fd=%d fdname=%s skipauth=%d", protocol, fd, NULLSTR(fdname), skipauth); - int ret; QEMU_CHECK_MONITOR(mon); @@ -4168,8 +4170,9 @@ int qemuMonitorGetMemoryDeviceInfo(qemuMonitorPtr mon, virHashTablePtr *info) { + int ret; + VIR_DEBUG("info=%p", info); - int ret; *info = NULL; diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c index c91b5d3293..404712e7c8 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -1621,10 +1621,10 @@ static void remoteRelayConnectionClosedEvent(virConnectPtr conn G_GNUC_UNUSED, int reason, void *opaque) { virNetServerClientPtr client = opaque; - - VIR_DEBUG("Relaying connection closed event, reason %d", reason); - remote_connect_event_connection_closed_msg msg = { reason }; + + VIR_DEBUG("Relaying connection closed event, reason %d", reason); + remoteDispatchObjectEventSend(client, remoteProgram, REMOTE_PROC_CONNECT_EVENT_CONNECTION_CLOSED, (xdrproc_t)xdr_remote_connect_event_connection_closed_msg, diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_stream.c index 73e4d7befb..9a62189cd6 100644 --- a/src/remote/remote_daemon_stream.c +++ b/src/remote/remote_daemon_stream.c @@ -434,9 +434,10 @@ int daemonAddClientStream(virNetServerClientPtr client, daemonClientStream *stream, bool transmit) { + daemonClientPrivatePtr priv = virNetServerClientGetPrivateData(client); + VIR_DEBUG("client=%p, proc=%d, serial=%u, st=%p, transmit=%d", client, stream->procedure, stream->serial, stream->st, transmit); - daemonClientPrivatePtr priv = virNetServerClientGetPrivateData(client); if (stream->filterID != -1) { VIR_WARN("Filter already added to client %p", client); @@ -484,12 +485,13 @@ int daemonRemoveClientStream(virNetServerClientPtr client, daemonClientStream *stream) { - VIR_DEBUG("client=%p, proc=%d, serial=%u, st=%p", - client, stream->procedure, stream->serial, stream->st); daemonClientPrivatePtr priv = virNetServerClientGetPrivateData(client); daemonClientStream *curr = priv->streams; daemonClientStream *prev = NULL; + VIR_DEBUG("client=%p, proc=%d, serial=%u, st=%p", + client, stream->procedure, stream->serial, stream->st); + if (stream->filterID != -1) { virNetServerClientRemoveFilter(client, stream->filterID); @@ -648,11 +650,12 @@ daemonStreamHandleAbort(virNetServerClientPtr client, daemonClientStream *stream, virNetMessagePtr msg) { - VIR_DEBUG("client=%p, stream=%p, proc=%d, serial=%u", - client, stream, msg->header.proc, msg->header.serial); int ret; bool raise_error = false; + VIR_DEBUG("client=%p, stream=%p, proc=%d, serial=%u", + client, stream, msg->header.proc, msg->header.serial); + stream->closed = true; virStreamEventRemoveCallback(stream->st); ret = virStreamAbort(stream->st); diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 2402f73475..8654046b8d 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5691,10 +5691,11 @@ remoteStreamSend(virStreamPtr st, const char *data, size_t nbytes) { + struct private_data *priv = st->conn->privateData; + virNetClientStreamPtr privst = st->privateData; + int rv; + VIR_DEBUG("st=%p data=%p nbytes=%zu", st, data, nbytes); - struct private_data *priv = st->conn->privateData; - virNetClientStreamPtr privst = st->privateData; - int rv; remoteDriverLock(priv); priv->localUses++; @@ -5719,11 +5720,12 @@ remoteStreamRecvFlags(virStreamPtr st, size_t nbytes, unsigned int flags) { + struct private_data *priv = st->conn->privateData; + virNetClientStreamPtr privst = st->privateData; + int rv; + VIR_DEBUG("st=%p data=%p nbytes=%zu flags=0x%x", st, data, nbytes, flags); - struct private_data *priv = st->conn->privateData; - virNetClientStreamPtr privst = st->privateData; - int rv; virCheckFlags(VIR_STREAM_RECV_STOP_AT_HOLE, -1); @@ -5760,11 +5762,12 @@ remoteStreamSendHole(virStreamPtr st, long long length, unsigned int flags) { + struct private_data *priv = st->conn->privateData; + virNetClientStreamPtr privst = st->privateData; + int rv; + VIR_DEBUG("st=%p length=%lld flags=0x%x", st, length, flags); - struct private_data *priv = st->conn->privateData; - virNetClientStreamPtr privst = st->privateData; - int rv; remoteDriverLock(priv); priv->localUses++; diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 441f1502a6..42703664fe 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -1556,8 +1556,10 @@ static void virNetClientIOEventLoopPassTheBuck(virNetClientPtr client, virNetClientCallPtr thiscall) { - VIR_DEBUG("Giving up the buck %p", thiscall); virNetClientCallPtr tmp = client->waitDispatch; + + VIR_DEBUG("Giving up the buck %p", thiscall); + /* See if someone else is still waiting * and if so, then pass the buck ! */ while (tmp) { diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c index eae23ec24a..a6d4e41220 100644 --- a/src/storage/storage_backend_disk.c +++ b/src/storage/storage_backend_disk.c @@ -673,10 +673,10 @@ virStorageBackendDiskPartBoundaries(virStoragePoolObjPtr pool, virStoragePoolSourceDevicePtr dev = &def->source.devices[0]; unsigned long long cylinderSize = (unsigned long long)dev->geometry.heads * dev->geometry.sectors * SECTOR_SIZE; + int partType = virStorageBackendDiskPartTypeToCreate(pool); VIR_DEBUG("find free area: allocation %llu, cyl size %llu", allocation, cylinderSize); - int partType = virStorageBackendDiskPartTypeToCreate(pool); /* how many extra bytes we have since we allocate aligned to the cylinder boundary */ diff --git a/src/storage/storage_file_fs.c b/src/storage/storage_file_fs.c index 8aafd58992..8d9023bead 100644 --- a/src/storage/storage_file_fs.c +++ b/src/storage/storage_file_fs.c @@ -51,11 +51,12 @@ struct _virStorageFileBackendFsPriv { static void virStorageFileBackendFileDeinit(virStorageSourcePtr src) { + virStorageFileBackendFsPrivPtr priv = src->drv->priv; + VIR_DEBUG("deinitializing FS storage file %p (%s:%s)", src, virStorageTypeToString(virStorageSourceGetActualType(src)), src->path); - virStorageFileBackendFsPrivPtr priv = src->drv->priv; VIR_FREE(priv->canonpath); VIR_FREE(priv); diff --git a/src/util/virdbus.c b/src/util/virdbus.c index f512031b42..fbfc09c949 100644 --- a/src/util/virdbus.c +++ b/src/util/virdbus.c @@ -862,8 +862,8 @@ virDBusMessageIterEncode(DBusMessageIter *rootiter, dbustype *x = (dbustype *)&v.member; \ vargtype *y; \ if (arrayref) { \ - VIR_DEBUG("Use arrayref"); \ vargtype **xptrptr = arrayptr; \ + VIR_DEBUG("Use arrayref"); \ if (VIR_EXPAND_N(*xptrptr, *narrayptr, 1) < 0) \ goto cleanup; \ y = (*xptrptr + (*narrayptr - 1)); \ diff --git a/src/util/virfirewall.c b/src/util/virfirewall.c index 12905165d4..22e717bce4 100644 --- a/src/util/virfirewall.c +++ b/src/util/virfirewall.c @@ -830,10 +830,11 @@ virFirewallApply(virFirewallPtr firewall) VIR_DEBUG("Applying groups for %p", firewall); for (i = 0; i < firewall->ngroups; i++) { if (virFirewallApplyGroup(firewall, i) < 0) { - VIR_DEBUG("Rolling back groups up to %zu for %p", i, firewall); size_t first = i; virErrorPtr saved_error; + VIR_DEBUG("Rolling back groups up to %zu for %p", i, firewall); + virErrorPreserveLast(&saved_error); /* diff --git a/src/util/virnetdevip.c b/src/util/virnetdevip.c index 409f062c5c..8c66baa884 100644 --- a/src/util/virnetdevip.c +++ b/src/util/virnetdevip.c @@ -296,8 +296,10 @@ virNetDevIPRouteAdd(const char *ifname, /* If we have no valid network address, then use the default one */ if (!addr || !VIR_SOCKET_ADDR_VALID(addr)) { - VIR_DEBUG("computing default address"); int family = VIR_SOCKET_ADDR_FAMILY(gateway); + + VIR_DEBUG("computing default address"); + if (family == AF_INET) { if (virSocketAddrParseIPv4(&defaultAddr, VIR_SOCKET_ADDR_IPV4_ALL) < 0) return -1; diff --git a/src/util/virobject.c b/src/util/virobject.c index 3f0bcc38ea..a6305354c3 100644 --- a/src/util/virobject.c +++ b/src/util/virobject.c @@ -315,11 +315,12 @@ virObjectRWLockableNew(virClassPtr klass) static void vir_object_finalize(GObject *gobj) { - PROBE(OBJECT_DISPOSE, "obj=%p", gobj); virObjectPtr obj = VIR_OBJECT(gobj); virObjectPrivate *priv = vir_object_get_instance_private(obj); - virClassPtr klass = priv->klass; + + PROBE(OBJECT_DISPOSE, "obj=%p", gobj); + while (klass) { if (klass->dispose) klass->dispose(obj); diff --git a/src/util/virprocess.c b/src/util/virprocess.c index a9afa2e665..6f03627c42 100644 --- a/src/util/virprocess.c +++ b/src/util/virprocess.c @@ -444,11 +444,12 @@ int virProcessKillPainfully(pid_t pid, bool force) int virProcessSetAffinity(pid_t pid, virBitmapPtr map) { size_t i; - VIR_DEBUG("Set process affinity on %lld", (long long)pid); int numcpus = 1024; size_t masklen; cpu_set_t *mask; + VIR_DEBUG("Set process affinity on %lld", (long long)pid); + /* Not only may the statically allocated cpu_set_t be too small, * but there is no way to ask the kernel what size is large enough. * So you have no option but to pick a size, try, catch EINVAL, diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index f529f0faf3..51037c691f 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -5335,14 +5335,14 @@ virStorageFileGetMetadata(virStorageSourcePtr src, uid_t uid, gid_t gid, bool report_broken) { + virHashTablePtr cycle = NULL; + virStorageType actualType = virStorageSourceGetActualType(src); + int ret = -1; + VIR_DEBUG("path=%s format=%d uid=%u gid=%u report_broken=%d", src->path, src->format, (unsigned int)uid, (unsigned int)gid, report_broken); - virHashTablePtr cycle = NULL; - virStorageType actualType = virStorageSourceGetActualType(src); - int ret = -1; - if (!(cycle = virHashCreate(5, NULL))) return -1; -- 2.26.2

virNetClientRemoveStream starts by calling a lock. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/rpc/virnetclient.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 42703664fe..2e0aa9ca7c 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -1043,8 +1043,10 @@ int virNetClientAddStream(virNetClientPtr client, void virNetClientRemoveStream(virNetClientPtr client, virNetClientStreamPtr st) { - virObjectLock(client); size_t i; + + virObjectLock(client); + for (i = 0; i < client->nstreams; i++) { if (client->streams[i] == st) break; -- 2.26.2

Declare it at the beginning of the function instead of right before use. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/security/security_dac.c | 20 ++++++++++---------- src/security/security_selinux.c | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/security/security_dac.c b/src/security/security_dac.c index dd701ef28b..d9d4cda159 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1945,6 +1945,11 @@ virSecurityDACRestoreAllLabel(virSecurityManagerPtr mgr, size_t i; int rc = 0; + struct _virSecuritySELinuxChardevCallbackData chardevData = { + .mgr = mgr, + .chardevStdioLogd = chardevStdioLogd, + }; + secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_DAC_NAME); if (!priv->dynamicOwnership || (secdef && !secdef->relabel)) @@ -1986,11 +1991,6 @@ virSecurityDACRestoreAllLabel(virSecurityManagerPtr mgr, rc = -1; } - struct _virSecuritySELinuxChardevCallbackData chardevData = { - .mgr = mgr, - .chardevStdioLogd = chardevStdioLogd, - }; - if (virDomainChrDefForeach(def, false, virSecurityDACRestoreChardevCallback, @@ -2152,6 +2152,11 @@ virSecurityDACSetAllLabel(virSecurityManagerPtr mgr, uid_t user; gid_t group; + struct _virSecuritySELinuxChardevCallbackData chardevData = { + .mgr = mgr, + .chardevStdioLogd = chardevStdioLogd, + }; + secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_DAC_NAME); if (!priv->dynamicOwnership || (secdef && !secdef->relabel)) @@ -2192,11 +2197,6 @@ virSecurityDACSetAllLabel(virSecurityManagerPtr mgr, return -1; } - struct _virSecuritySELinuxChardevCallbackData chardevData = { - .mgr = mgr, - .chardevStdioLogd = chardevStdioLogd, - }; - if (virDomainChrDefForeach(def, true, virSecurityDACSetChardevCallback, diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index cc8fb1099c..87741d6dad 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2767,6 +2767,11 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManagerPtr mgr, size_t i; int rc = 0; + struct _virSecuritySELinuxChardevCallbackData chardevData = { + .mgr = mgr, + .chardevStdioLogd = chardevStdioLogd + }; + VIR_DEBUG("Restoring security label on %s migrated=%d", def->name, migrated); secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_SELINUX_NAME); @@ -2805,11 +2810,6 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManagerPtr mgr, rc = -1; } - struct _virSecuritySELinuxChardevCallbackData chardevData = { - .mgr = mgr, - .chardevStdioLogd = chardevStdioLogd - }; - if (virDomainChrDefForeach(def, false, virSecuritySELinuxRestoreSecurityChardevCallback, @@ -3165,6 +3165,11 @@ virSecuritySELinuxSetAllLabel(virSecurityManagerPtr mgr, virSecuritySELinuxDataPtr data = virSecurityManagerGetPrivateData(mgr); virSecurityLabelDefPtr secdef; + struct _virSecuritySELinuxChardevCallbackData chardevData = { + .mgr = mgr, + .chardevStdioLogd = chardevStdioLogd + }; + secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_SELINUX_NAME); if (!secdef || !secdef->relabel || data->skipAllLabel) @@ -3208,11 +3213,6 @@ virSecuritySELinuxSetAllLabel(virSecurityManagerPtr mgr, return -1; } - struct _virSecuritySELinuxChardevCallbackData chardevData = { - .mgr = mgr, - .chardevStdioLogd = chardevStdioLogd - }; - if (virDomainChrDefForeach(def, true, virSecuritySELinuxSetSecurityChardevCallback, -- 2.26.2

Declare the variables at the beginning of the function, then fill them up. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/util/virnetdevbridge.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c index e1ba119b8b..8ce1a07c41 100644 --- a/src/util/virnetdevbridge.c +++ b/src/util/virnetdevbridge.c @@ -119,6 +119,8 @@ static int virNetDevBridgeSet(const char *brname, struct ifreq *ifr) /* pre-filled bridge name */ { g_autofree char *path = NULL; + unsigned long args[] = { 0, value, 0, 0 }; + unsigned long paramid; path = g_strdup_printf(SYSFS_NET_DIR "%s/bridge/%s", brname, paramname); @@ -129,7 +131,6 @@ static int virNetDevBridgeSet(const char *brname, VIR_DEBUG("Unable to set bridge %s %s via sysfs", brname, paramname); } - unsigned long paramid; if (STREQ(paramname, "stp_state")) { paramid = BRCTL_SET_BRIDGE_STP_STATE; } else if (STREQ(paramname, "forward_delay")) { @@ -140,7 +141,8 @@ static int virNetDevBridgeSet(const char *brname, brname, paramname); return -1; } - unsigned long args[] = { paramid, value, 0, 0 }; + + args[0] = paramid; ifr->ifr_data = (char*)&args; if (ioctl(fd, SIOCDEVPRIVATE, ifr) < 0) { virReportSystemError(errno, -- 2.26.2

Declare the structs: at the beginning of the block. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- tests/sockettest.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/sockettest.c b/tests/sockettest.c index a3c27421fc..3183ca523f 100644 --- a/tests/sockettest.c +++ b/tests/sockettest.c @@ -277,11 +277,11 @@ mymain(void) do { \ virSocketAddr addr; \ struct testParseData data = { &addr, addrstr, family, pass }; \ - memset(&addr, 0, sizeof(addr)); \ - if (virTestRun("Test parse " addrstr " family " #family, \ - testParseHelper, &data) < 0) \ - ret = -1; \ struct testFormatData data2 = { &addr, addrstr, pass }; \ + memset(&addr, 0, sizeof(addr)); \ + if (virTestRun("Test parse " addrstr " family " #family, \ + testParseHelper, &data) < 0) \ + ret = -1; \ if (virTestRun("Test format " addrstr " family " #family, \ testFormatHelper, &data2) < 0) \ ret = -1; \ @@ -291,11 +291,11 @@ mymain(void) do { \ virSocketAddr addr; \ struct testParseData data = { &addr, addrstr, family, true}; \ - memset(&addr, 0, sizeof(addr)); \ - if (virTestRun("Test parse " addrstr " family " #family, \ - testParseHelper, &data) < 0) \ - ret = -1; \ struct testFormatData data2 = { &addr, addrformated, pass }; \ + memset(&addr, 0, sizeof(addr)); \ + if (virTestRun("Test parse " addrstr " family " #family, \ + testParseHelper, &data) < 0) \ + ret = -1; \ if (virTestRun("Test format " addrstr " family " #family, \ testFormatHelper, &data2) < 0) \ ret = -1; \ -- 2.26.2

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- tests/virauthconfigtest.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/virauthconfigtest.c b/tests/virauthconfigtest.c index a88b453543..1bff3debb0 100644 --- a/tests/virauthconfigtest.c +++ b/tests/virauthconfigtest.c @@ -84,20 +84,6 @@ mymain(void) virAuthConfigPtr config; -#ifndef WIN32 - signal(SIGPIPE, SIG_IGN); -#endif /* WIN32 */ - -#define TEST_LOOKUP(config, hostname, service, credname, expect) \ - do { \ - const struct ConfigLookupData data = { \ - config, hostname, service, credname, expect \ - }; \ - if (virTestRun("Test Lookup " hostname "-" service "-" credname, \ - testAuthLookup, &data) < 0) \ - ret = -1; \ - } while (0) - const char *confdata = "[credentials-test]\n" "username=fred\n" @@ -119,6 +105,20 @@ mymain(void) "[auth-libvirt-prod1.example.com]\n" "credentials=prod\n"; +#define TEST_LOOKUP(config, hostname, service, credname, expect) \ + do { \ + const struct ConfigLookupData data = { \ + config, hostname, service, credname, expect \ + }; \ + if (virTestRun("Test Lookup " hostname "-" service "-" credname, \ + testAuthLookup, &data) < 0) \ + ret = -1; \ + } while (0) + +#ifndef WIN32 + signal(SIGPIPE, SIG_IGN); +#endif /* WIN32 */ + if (!(config = virAuthConfigNewData("auth.conf", confdata, strlen(confdata)))) return EXIT_FAILURE; -- 2.26.2

VIR_CGROUP_BACKEND_CALL is exclusively used at the end of a function, but it declares a variable. Wrap it in a do..while block. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/util/vircgroupbackend.h | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/util/vircgroupbackend.h b/src/util/vircgroupbackend.h index e12a2e8b9d..bcbe435d78 100644 --- a/src/util/vircgroupbackend.h +++ b/src/util/vircgroupbackend.h @@ -452,15 +452,17 @@ virCgroupBackendForController(virCgroupPtr group, unsigned int controller); #define VIR_CGROUP_BACKEND_CALL(group, controller, func, ret, ...) \ - virCgroupBackendPtr backend = virCgroupBackendForController(group, controller); \ - if (!backend) { \ - virReportError(VIR_ERR_INTERNAL_ERROR, \ - _("failed to get cgroup backend for '%s'"), #func); \ - return ret; \ - } \ - if (!backend->func) { \ - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, \ - _("operation '%s' not supported"), #func); \ - return ret; \ - } \ - return backend->func(group, ##__VA_ARGS__); + do { \ + virCgroupBackendPtr backend = virCgroupBackendForController(group, controller); \ + if (!backend) { \ + virReportError(VIR_ERR_INTERNAL_ERROR, \ + _("failed to get cgroup backend for '%s'"), #func); \ + return ret; \ + } \ + if (!backend->func) { \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, \ + _("operation '%s' not supported"), #func); \ + return ret; \ + } \ + return backend->func(group, ##__VA_ARGS__); \ + } while (0) -- 2.26.2

The ScanTargets testing code declares some variables in the middle of main. Split it out into a separate function. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- tests/viriscsitest.c | 47 ++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/tests/viriscsitest.c b/tests/viriscsitest.c index 76f0aa2946..e86d3970b6 100644 --- a/tests/viriscsitest.c +++ b/tests/viriscsitest.c @@ -311,26 +311,8 @@ testISCSIConnectionLogin(const void *data) static int -mymain(void) +testISCSIScanTargetsTests(void) { - int rv = 0; - -# define DO_SESSION_TEST(name, session) \ - do { \ - struct testSessionInfo info = {name, false, session}; \ - if (virTestRun("ISCSI get session test" name, \ - testISCSIGetSession, &info) < 0) \ - rv = -1; \ - info.output_version = true; \ - if (virTestRun("ISCSI get (non-flash) session test" name, \ - testISCSIGetSession, &info) < 0) \ - rv = -1; \ - } while (0) - - DO_SESSION_TEST("iqn.2004-06.example:example1:iscsi.test", "1"); - DO_SESSION_TEST("iqn.2009-04.example:example1:iscsi.seven", "7"); - DO_SESSION_TEST("iqn.2009-04.example:example1:iscsi.eight", NULL); - const char *targets[] = { "iqn.2004-06.example:example1:iscsi.test", "iqn.2005-05.example:example1:iscsi.hello", @@ -346,6 +328,33 @@ mymain(void) .nexpected = G_N_ELEMENTS(targets), }; if (virTestRun("ISCSI scan targets", testISCSIScanTargets, &infoTargets) < 0) + return -1; + return 0; +} + + +static int +mymain(void) +{ + int rv = 0; + +# define DO_SESSION_TEST(name, session) \ + do { \ + struct testSessionInfo info = {name, false, session}; \ + if (virTestRun("ISCSI get session test" name, \ + testISCSIGetSession, &info) < 0) \ + rv = -1; \ + info.output_version = true; \ + if (virTestRun("ISCSI get (non-flash) session test" name, \ + testISCSIGetSession, &info) < 0) \ + rv = -1; \ + } while (0) + + DO_SESSION_TEST("iqn.2004-06.example:example1:iscsi.test", "1"); + DO_SESSION_TEST("iqn.2009-04.example:example1:iscsi.seven", "7"); + DO_SESSION_TEST("iqn.2009-04.example:example1:iscsi.eight", NULL); + + if (testISCSIScanTargetsTests() < 0) rv = -1; # define DO_LOGIN_TEST(portal, iqn, target) \ -- 2.26.2

The VIR_XPATH_NODE_AUTORESTORE contains an ignore_value statement to silence an unused variable warning on clang. Use a pragma instead, which is not a statement. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/internal.h | 5 +++++ src/util/virxml.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/internal.h b/src/internal.h index 3bab6b4bfe..3aa3c6ca67 100644 --- a/src/internal.h +++ b/src/internal.h @@ -189,6 +189,11 @@ _Pragma ("GCC diagnostic push") #endif +/* Where ignore_value cannot be used because it's a statement */ +#define VIR_WARNINGS_NO_UNUSED_VARIABLE \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wunused-variable\"") + #define VIR_WARNINGS_RESET \ _Pragma ("GCC diagnostic pop") diff --git a/src/util/virxml.h b/src/util/virxml.h index 886d1e025f..0301f15308 100644 --- a/src/util/virxml.h +++ b/src/util/virxml.h @@ -241,9 +241,10 @@ G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virXPathContextNodeSave, virXPathContextNodeRes * node pointer is reset to the original value when this macro was used. */ #define VIR_XPATH_NODE_AUTORESTORE(_ctxt) \ + VIR_WARNINGS_NO_UNUSED_VARIABLE \ g_auto(virXPathContextNodeSave) _ctxt ## CtxtSave = { .ctxt = _ctxt,\ .node = _ctxt->node}; \ - ignore_value(&_ctxt ## CtxtSave) + VIR_WARNINGS_RESET G_DEFINE_AUTOPTR_CLEANUP_FUNC(xmlDoc, xmlFreeDoc); G_DEFINE_AUTOPTR_CLEANUP_FUNC(xmlXPathContext, xmlXPathFreeContext); -- 2.26.2

Since the macro no longer includes the 'ignore_value' statement, stop putting another empty statement after it. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/backup_conf.c | 2 +- src/conf/checkpoint_conf.c | 2 +- src/conf/cpu_conf.c | 2 +- src/conf/domain_conf.c | 109 ++++++++++++++++--------------- src/conf/interface_conf.c | 8 +-- src/conf/netdev_vlan_conf.c | 2 +- src/conf/network_conf.c | 14 ++-- src/conf/networkcommon_conf.c | 2 +- src/conf/node_device_conf.c | 34 +++++----- src/conf/numa_conf.c | 6 +- src/conf/snapshot_conf.c | 2 +- src/conf/storage_adapter_conf.c | 2 +- src/conf/storage_conf.c | 2 +- src/conf/virsavecookie.c | 2 +- src/cpu/cpu_map.c | 4 +- src/cpu/cpu_x86.c | 2 +- src/lxc/lxc_domain.c | 2 +- src/qemu/qemu_capabilities.c | 2 +- src/qemu/qemu_domain.c | 6 +- src/qemu/qemu_domainjob.c | 4 +- src/qemu/qemu_migration_cookie.c | 6 +- src/util/virstorageencryption.c | 4 +- src/util/virstoragefile.c | 2 +- 23 files changed, 111 insertions(+), 110 deletions(-) diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c index 02319f7245..5caba621d8 100644 --- a/src/conf/backup_conf.c +++ b/src/conf/backup_conf.c @@ -102,7 +102,7 @@ virDomainBackupDiskDefParseXML(xmlNodePtr node, unsigned int flags, virDomainXMLOptionPtr xmlopt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *type = NULL; g_autofree char *driver = NULL; g_autofree char *backup = NULL; diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c index 1f935952c8..914af4305d 100644 --- a/src/conf/checkpoint_conf.c +++ b/src/conf/checkpoint_conf.c @@ -96,7 +96,7 @@ virDomainCheckpointDiskDefParseXML(xmlNodePtr node, virDomainCheckpointDiskDefPtr def) { g_autofree char *checkpoint = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index fcc1ab6814..dea950ce68 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -327,7 +327,7 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, { g_autoptr(virCPUDef) def = NULL; g_autofree xmlNodePtr *nodes = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int n; size_t i; g_autofree char *cpuMode = NULL; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 570812cefb..9a9211460c 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8305,7 +8305,7 @@ virDomainHostdevSubsysSCSIiSCSIDefParseXML(xmlNodePtr sourcenode, virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc = &def->u.iscsi; g_autoptr(virStorageAuthDef) authdef = NULL; xmlNodePtr node; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = sourcenode; @@ -8793,7 +8793,7 @@ virDomainNetDefCoalesceParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt) { virNetDevCoalescePtr ret = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) unsigned long long tmp = 0; g_autofree char *str = NULL; @@ -9164,7 +9164,7 @@ virSecurityLabelDefsParseXML(virDomainDefPtr def, virDomainXMLOptionPtr xmlopt, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) size_t i = 0, j; int n; g_autofree xmlNodePtr *list = NULL; @@ -9262,7 +9262,7 @@ virSecurityDeviceLabelDefParseXML(virSecurityDeviceLabelDefPtr **seclabels_rtn, xmlXPathContextPtr ctxt, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virSecurityDeviceLabelDefPtr *seclabels = NULL; size_t nseclabels = 0; int n; @@ -9458,7 +9458,7 @@ static virStorageNetCookieDefPtr virDomainStorageNetCookieParse(xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autoptr(virStorageNetCookieDef) cookie = NULL; ctxt->node = node; @@ -9485,7 +9485,7 @@ virDomainStorageNetCookiesParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virStorageSourcePtr src) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree xmlNodePtr *nodes = NULL; ssize_t nnodes; size_t i; @@ -9702,7 +9702,7 @@ virDomainDiskSourcePRParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virStoragePRDefPtr *pr) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; @@ -9757,7 +9757,7 @@ static virStorageSourceSlicePtr virDomainStorageSourceParseSlice(xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *offset = NULL; g_autofree char *size = NULL; g_autofree virStorageSourceSlicePtr ret = g_new0(virStorageSourceSlice, 1); @@ -9823,7 +9823,7 @@ virDomainStorageSourceParse(xmlNodePtr node, unsigned int flags, virDomainXMLOptionPtr xmlopt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr tmp; ctxt->node = node; @@ -9901,7 +9901,7 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt, unsigned int flags, virDomainXMLOptionPtr xmlopt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr source; g_autoptr(virStorageSource) backingStore = NULL; g_autofree char *type = NULL; @@ -10039,7 +10039,7 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def, virDomainXMLOptionPtr xmlopt) { xmlNodePtr mirrorNode; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *mirrorFormat = NULL; g_autofree char *mirrorType = NULL; g_autofree char *ready = NULL; @@ -10408,7 +10408,7 @@ virDomainDiskDefParsePrivateData(xmlXPathContextPtr ctxt, virDomainXMLOptionPtr xmlopt) { xmlNodePtr private_node = virXPathNode("./privateData", ctxt); - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) if (!xmlopt || !xmlopt->privateData.diskParse || @@ -10435,7 +10435,7 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt, { virDomainDiskDefPtr def; xmlNodePtr cur; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) bool source = false; virStorageEncryptionPtr encryption = NULL; g_autoptr(virStorageAuthDef) authdef = NULL; @@ -11038,7 +11038,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt, bool processedTarget = false; int numaNode = -1; int ports = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int rc; g_autofree char *typeStr = NULL; g_autofree char *idx = NULL; @@ -11424,7 +11424,7 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt, xmlXPathContextPtr ctxt, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainFSDefPtr def; xmlNodePtr cur; g_autofree char *type = NULL; @@ -11676,7 +11676,7 @@ virDomainActualNetDefParseXML(xmlNodePtr node, { virDomainActualNetDefPtr actual = NULL; int ret = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr bandwidth_node = NULL; xmlNodePtr vlanNode; xmlNodePtr virtPortNode; @@ -11876,7 +11876,7 @@ virDomainChrSourceReconnectDefParseXML(virDomainChrSourceReconnectDefPtr def, xmlXPathContextPtr ctxt) { int tmpVal; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr cur; g_autofree char *tmp = NULL; @@ -11927,7 +11927,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr tmpNode; virHashTablePtr filterparams = NULL; virDomainActualNetDefPtr actual = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainChrSourceReconnectDef reconnect = {0}; int rv, val; g_autofree char *macaddr = NULL; @@ -13255,7 +13255,7 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def, /* Check for an optional seclabel override in <source/>. */ if (chr_def) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = cur; if (virSecurityDeviceLabelDefParseXML(&def->seclabels, &def->nseclabels, @@ -13632,7 +13632,7 @@ virDomainTPMDefParseXML(virDomainXMLOptionPtr xmlopt, unsigned int flags) { virDomainTPMDefPtr def; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int nbackends; g_autofree char *path = NULL; g_autofree char *model = NULL; @@ -13765,7 +13765,7 @@ virDomainInputDefParseXML(virDomainXMLOptionPtr xmlopt, xmlXPathContextPtr ctxt, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainInputDefPtr def; g_autofree char *evdev = NULL; g_autofree char *type = NULL; @@ -13960,7 +13960,7 @@ virDomainTimerDefParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt) { virDomainTimerDefPtr def; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr catchup; int ret; g_autofree char *name = NULL; @@ -14307,7 +14307,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def, xmlXPathContextPtr ctxt, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainGraphicsListenDef newListen = {0}; int nListens; int ret = -1; @@ -14464,7 +14464,7 @@ virDomainGraphicsDefParseXMLSDL(virDomainGraphicsDefPtr def, xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int enableVal; xmlNodePtr glNode; g_autofree char *fullscreen = virXMLPropString(node, "fullscreen"); @@ -14853,7 +14853,7 @@ virDomainGraphicsDefParseXMLEGLHeadless(virDomainGraphicsDefPtr def, xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr glNode; ctxt->node = node; @@ -14998,7 +14998,7 @@ virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt, unsigned int flags) { virDomainSoundDefPtr def; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *model = NULL; if (VIR_ALLOC(def) < 0) @@ -15146,7 +15146,7 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlopt, unsigned int flags) { virDomainRNGDefPtr def; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int nbackends; g_autofree xmlNodePtr *backends = NULL; g_autofree char *model = NULL; @@ -15259,7 +15259,7 @@ virDomainMemballoonDefParseXML(virDomainXMLOptionPtr xmlopt, unsigned int flags) { virDomainMemballoonDefPtr def; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) unsigned int period = 0; g_autofree char *model = NULL; g_autofree char *deflate = NULL; @@ -15344,7 +15344,7 @@ virDomainShmemDefParseXML(virDomainXMLOptionPtr xmlopt, virDomainShmemDefPtr def = NULL; virDomainShmemDefPtr ret = NULL; xmlNodePtr msi = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr server = NULL; g_autofree char *tmp = NULL; @@ -15447,7 +15447,7 @@ virSysinfoBIOSParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt, virSysinfoBIOSDefPtr *bios) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; virSysinfoBIOSDefPtr def; @@ -15510,7 +15510,7 @@ virSysinfoSystemParseXML(xmlNodePtr node, unsigned char *domUUID, bool uuid_generated) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; virSysinfoSystemDefPtr def; g_autofree char *tmpUUID = NULL; @@ -15584,7 +15584,7 @@ virSysinfoBaseBoardParseXML(xmlXPathContextPtr ctxt, size_t *nbaseBoard) { size_t i, nboards = 0; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int n; g_autofree virSysinfoBaseBoardDefPtr boards = NULL; g_autofree xmlNodePtr *nodes = NULL; @@ -15633,7 +15633,7 @@ virSysinfoOEMStringsParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt, virSysinfoOEMStringsDefPtr *oem) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; virSysinfoOEMStringsDefPtr def; int nstrings; @@ -15671,7 +15671,7 @@ virSysinfoChassisParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt, virSysinfoChassisDefPtr *chassisdef) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; virSysinfoChassisDefPtr def; @@ -15757,7 +15757,7 @@ virSysinfoParseFWCfgDef(virSysinfoDefPtr def, xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree xmlNodePtr *nodes = NULL; int n; size_t i; @@ -15816,7 +15816,7 @@ virSysinfoParseXML(xmlNodePtr node, unsigned char *domUUID, bool uuid_generated) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virSysinfoDefPtr def; g_autofree char *typeStr = NULL; int type; @@ -16029,7 +16029,7 @@ virDomainVideoDefParseXML(virDomainXMLOptionPtr xmlopt, { virDomainVideoDefPtr def; xmlNodePtr cur; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *type = NULL; g_autofree char *driver_name = NULL; g_autofree char *heads = NULL; @@ -16184,7 +16184,7 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt, unsigned int flags) { virDomainHostdevDefPtr def; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *mode = virXMLPropString(node, "mode"); g_autofree char *type = virXMLPropString(node, "type"); @@ -16448,7 +16448,7 @@ virDomainRedirFilterDefParseXML(xmlNodePtr node, { int n; size_t i; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainRedirFilterDefPtr def = NULL; g_autofree xmlNodePtr *nodes = NULL; @@ -16586,7 +16586,7 @@ virDomainMemorySourceDefParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt, virDomainMemoryDefPtr def) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *nodemask = NULL; ctxt->node = node; @@ -16640,10 +16640,11 @@ virDomainMemoryTargetDefParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt, virDomainMemoryDefPtr def) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); - ctxt->node = node; + VIR_XPATH_NODE_AUTORESTORE(ctxt) int rv; + ctxt->node = node; + /* initialize to value which marks that the user didn't specify it */ def->targetNode = -1; @@ -16687,7 +16688,7 @@ static virDomainSEVDefPtr virDomainSEVDefParseXML(xmlNodePtr sevNode, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainSEVDefPtr def; unsigned long policy; g_autofree char *type = NULL; @@ -16753,7 +16754,7 @@ virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt, const virDomainDef *dom, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr node; virDomainMemoryDefPtr def; int val; @@ -16848,7 +16849,7 @@ static virDomainIOMMUDefPtr virDomainIOMMUDefParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr driver; int val; g_autofree char *tmp = NULL; @@ -16928,7 +16929,7 @@ virDomainVsockDefParseXML(virDomainXMLOptionPtr xmlopt, xmlXPathContextPtr ctxt, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr cid; int val; g_autofree char *tmp = NULL; @@ -18851,7 +18852,7 @@ virDomainIdmapDefParseXML(xmlXPathContextPtr ctxt, { size_t i; virDomainIdMapEntryPtr idmap = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) if (VIR_ALLOC_N(idmap, num) < 0) return idmap; @@ -19250,7 +19251,7 @@ virDomainHugepagesParseXML(xmlNodePtr node, xmlXPathContextPtr ctxt, virDomainHugePagePtr hugepage) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *nodeset = NULL; ctxt->node = node; @@ -19285,7 +19286,7 @@ static virDomainResourceDefPtr virDomainResourceDefParse(xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainResourceDefPtr def = NULL; ctxt->node = node; @@ -20462,7 +20463,7 @@ virDomainCachetuneDefParseCache(xmlXPathContextPtr ctxt, xmlNodePtr node, virResctrlAllocPtr alloc) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) unsigned int level; unsigned int cache; int type; @@ -20606,7 +20607,7 @@ virDomainResctrlMonDefParse(virDomainDefPtr def, virDomainResctrlDefPtr resctrl) { virDomainResctrlMonDefPtr domresmon = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) unsigned int level = 0; size_t i = 0; int n = 0; @@ -20760,7 +20761,7 @@ virDomainCachetuneDefParse(virDomainDefPtr def, xmlNodePtr node, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainResctrlDefPtr resctrl = NULL; ssize_t i = 0; int n; @@ -20902,7 +20903,7 @@ virDomainMemorytuneDefParseMemory(xmlXPathContextPtr ctxt, xmlNodePtr node, virResctrlAllocPtr alloc) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) unsigned int id; unsigned int bandwidth; g_autofree char *tmp = NULL; @@ -20948,7 +20949,7 @@ virDomainMemorytuneDefParse(virDomainDefPtr def, xmlNodePtr node, unsigned int flags) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainResctrlDefPtr resctrl = NULL; virDomainResctrlDefPtr newresctrl = NULL; g_autoptr(virBitmap) vcpus = NULL; diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c index 76f7054721..1e478ac075 100644 --- a/src/conf/interface_conf.c +++ b/src/conf/interface_conf.c @@ -262,7 +262,7 @@ static int virInterfaceDefParseDhcp(virInterfaceProtocolDefPtr def, xmlNodePtr dhcp, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) char *tmp; int ret = 0; @@ -424,7 +424,7 @@ static int virInterfaceDefParseIfAdressing(virInterfaceDefPtr def, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *protoNodes = NULL; int nProtoNodes, pp, ret = -1; char *tmp; @@ -553,7 +553,7 @@ virInterfaceDefParseBondItfs(virInterfaceDefPtr def, xmlXPathContextPtr ctxt) { xmlNodePtr *interfaces = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virInterfaceDefPtr itf; int nbItf; size_t i; @@ -692,7 +692,7 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt, virInterfaceDefPtr def; int type; char *tmp; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr lnk; diff --git a/src/conf/netdev_vlan_conf.c b/src/conf/netdev_vlan_conf.c index 7830a341b2..493708fee1 100644 --- a/src/conf/netdev_vlan_conf.c +++ b/src/conf/netdev_vlan_conf.c @@ -33,7 +33,7 @@ int virNetDevVlanParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virNetDevVlanPtr def) { int ret = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) char *trunk = NULL; char *nativeMode = NULL; xmlNodePtr *tagNodes = NULL; diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index d9a198a372..2547ae57c0 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -779,7 +779,7 @@ virNetworkDNSSrvDefParseXML(const char *networkName, bool partialOkay) { int ret; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; @@ -937,7 +937,7 @@ virNetworkDNSDefParseXML(const char *networkName, g_autofree char *enable = NULL; int nhosts, nsrvs, ntxts, nfwds; size_t i; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; @@ -1081,7 +1081,7 @@ virNetworkIPDefParseXML(const char *networkName, * On failure clear it out, but don't free it. */ - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr dhcp; g_autofree char *address = NULL; g_autofree char *netmask = NULL; @@ -1252,7 +1252,7 @@ virNetworkPortGroupParseXML(virPortGroupDefPtr def, * On failure clear it out, but don't free it. */ - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr virtPortNode; xmlNodePtr vlanNode; xmlNodePtr bandwidth_node; @@ -1322,7 +1322,7 @@ virNetworkForwardNatDefParseXML(const char *networkName, g_autofree char *addrStart = NULL; g_autofree char *addrEnd = NULL; g_autofree char *ipv6 = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; @@ -1460,7 +1460,7 @@ virNetworkForwardDefParseXML(const char *networkName, g_autofree char *forwardManaged = NULL; g_autofree char *forwardDriverName = NULL; g_autofree char *type = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; @@ -1699,7 +1699,7 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt, xmlNodePtr forwardNode = NULL; g_autofree char *ipv6nogwStr = NULL; g_autofree char *trustGuestRxFilters = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr bandwidthNode = NULL; xmlNodePtr vlanNode; xmlNodePtr metadataNode = NULL; diff --git a/src/conf/networkcommon_conf.c b/src/conf/networkcommon_conf.c index a4f9ce5c62..2e51c80174 100644 --- a/src/conf/networkcommon_conf.c +++ b/src/conf/networkcommon_conf.c @@ -228,7 +228,7 @@ virNetDevIPRouteParseXML(const char *errorDetail, */ virNetDevIPRoutePtr def = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) char *family = NULL; char *address = NULL, *netmask = NULL; char *gateway = NULL; diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index 79f3f67a1a..5a05f738aa 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -717,7 +717,7 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapDRMPtr drm) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1, val; char *type = NULL; @@ -746,7 +746,7 @@ virNodeDevCapCCWParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapCCWPtr ccw_dev) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; char *cssid = NULL, *ssid = NULL, *devno = NULL; @@ -807,7 +807,7 @@ virNodeDevCapStorageParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapStoragePtr storage) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *nodes = NULL; size_t i; int n, ret = -1; @@ -900,7 +900,7 @@ virNodeDevCapSCSIParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapSCSIPtr scsi) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; ctxt->node = node; @@ -943,7 +943,7 @@ virNodeDevCapSCSITargetParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapSCSITargetPtr scsi_target) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *nodes = NULL; int ret = -1, n = 0; size_t i; @@ -1019,7 +1019,7 @@ virNodeDevCapSCSIHostParseXML(xmlXPathContextPtr ctxt, int create, const char *virt_type) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *nodes = NULL; int ret = -1, n = 0; size_t i; @@ -1119,7 +1119,7 @@ virNodeDevCapNetParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapNetPtr net) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr lnk; size_t i = -1; int ret = -1, n = -1; @@ -1197,7 +1197,7 @@ virNodeDevCapUSBInterfaceParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapUSBIfPtr usb_if) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; ctxt->node = node; @@ -1264,7 +1264,7 @@ virNodeDevCapUSBDevParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapUSBDevPtr usb_dev) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; ctxt->node = node; @@ -1307,7 +1307,7 @@ virNodeDevCapPCIDevIommuGroupParseXML(xmlXPathContextPtr ctxt, xmlNodePtr iommuGroupNode, virNodeDevCapPCIDevPtr pci_dev) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *addrNodes = NULL; char *numberStr = NULL; int nAddrNodes, ret = -1; @@ -1363,7 +1363,7 @@ virPCIEDeviceInfoLinkParseXML(xmlXPathContextPtr ctxt, xmlNodePtr linkNode, virPCIELinkPtr lnk) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1, speed; char *speedStr = NULL, *portStr = NULL; @@ -1409,7 +1409,7 @@ virPCIEDeviceInfoParseXML(xmlXPathContextPtr ctxt, xmlNodePtr pciExpressNode, virPCIEDeviceInfoPtr pci_express) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr lnk; int ret = -1; @@ -1579,7 +1579,7 @@ virNodeDevPCICapabilityParseXML(xmlXPathContextPtr ctxt, virNodeDevCapPCIDevPtr pci_dev) { char *type = virXMLPropString(node, "type"); - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; ctxt->node = node; @@ -1618,7 +1618,7 @@ virNodeDevCapPCIDevParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapPCIDevPtr pci_dev) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr iommuGroupNode; xmlNodePtr pciExpress; xmlNodePtr *nodes = NULL; @@ -1733,7 +1733,7 @@ virNodeDevCapSystemParseXML(xmlXPathContextPtr ctxt, { virNodeDevCapSystemHardwarePtr hardware = &syscap->hardware; virNodeDevCapSystemFirmwarePtr firmware = &syscap->firmware; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; char *tmp; @@ -1774,7 +1774,7 @@ virNodeDevCapMdevAttributeParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapMdevPtr mdev) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autoptr(virMediatedDeviceAttr) attr = virMediatedDeviceAttrNew(); ctxt->node = node; @@ -1797,7 +1797,7 @@ virNodeDevCapMdevParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node, virNodeDevCapMdevPtr mdev) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; int nattrs = 0; g_autofree xmlNodePtr *attrs = NULL; diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 50d57ba8f6..6a12495cf2 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -910,7 +910,7 @@ virDomainNumaDefNodeCacheParseXML(virDomainNumaPtr def, def->mem_nodes[cur_cell].caches = g_new0(virDomainNumaCache, n); for (i = 0; i < n; i++) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainNumaCachePtr cache = &def->mem_nodes[cur_cell].caches[i]; g_autofree char *tmp = NULL; unsigned int level; @@ -1010,7 +1010,7 @@ virDomainNumaDefParseXML(virDomainNumaPtr def, def->nmem_nodes = n; for (i = 0; i < n; i++) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int rc; unsigned int cur_cell = i; @@ -1134,7 +1134,7 @@ virDomainNumaDefParseXML(virDomainNumaPtr def, } VIR_FREE(tmp); } else if (virXMLNodeNameEqual(nodes[i], "bandwidth")) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) type = VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH; ctxt->node = nodes[i]; diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index 07336e914f..1ee63b9141 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -144,7 +144,7 @@ virDomainSnapshotDiskDefParseXML(xmlNodePtr node, char *type = NULL; char *driver = NULL; xmlNodePtr cur; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) ctxt->node = node; diff --git a/src/conf/storage_adapter_conf.c b/src/conf/storage_adapter_conf.c index 015e572630..77ecb8d5f2 100644 --- a/src/conf/storage_adapter_conf.c +++ b/src/conf/storage_adapter_conf.c @@ -178,7 +178,7 @@ virStorageAdapterParseXML(virStorageAdapterPtr adapter, xmlXPathContextPtr ctxt) { int ret = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) char *adapter_type = NULL; ctxt->node = node; diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index fac5ff7b86..001f4f2bdd 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -727,7 +727,7 @@ virStorageDefParsePerms(xmlXPathContextPtr ctxt, { long long val; int ret = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr node; g_autofree char *mode = NULL; diff --git a/src/conf/virsavecookie.c b/src/conf/virsavecookie.c index d8c51ce0ef..eeca61f351 100644 --- a/src/conf/virsavecookie.c +++ b/src/conf/virsavecookie.c @@ -57,7 +57,7 @@ virSaveCookieParse(xmlXPathContextPtr ctxt, virObjectPtr *obj, virSaveCookieCallbacksPtr saveCookie) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int ret = -1; *obj = NULL; diff --git a/src/cpu/cpu_map.c b/src/cpu/cpu_map.c index d14488f8aa..913e34a067 100644 --- a/src/cpu/cpu_map.c +++ b/src/cpu/cpu_map.c @@ -40,7 +40,7 @@ loadData(const char *mapfile, void *data) { int ret = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *nodes = NULL; int n; size_t i; @@ -130,7 +130,7 @@ loadIncludes(xmlXPathContextPtr ctxt, void *data) { int ret = -1; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *nodes = NULL; int n; size_t i; diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 1e5cd93abb..0a53e6968a 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1486,7 +1486,7 @@ x86ModelParseSignatures(virCPUx86ModelPtr model, xmlXPathContextPtr ctxt) { g_autofree xmlNodePtr *nodes = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) size_t i; int n; diff --git a/src/lxc/lxc_domain.c b/src/lxc/lxc_domain.c index d75942667c..d8aebe06d9 100644 --- a/src/lxc/lxc_domain.c +++ b/src/lxc/lxc_domain.c @@ -207,7 +207,7 @@ lxcDomainDefNamespaceParse(xmlXPathContextPtr ctxt, lxcDomainDefPtr lxcDef = g_new0(lxcDomainDef, 1); g_autofree xmlNodePtr *nodes = NULL; bool uses_lxc_ns = false; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) int feature; int n; size_t i; diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 589f2eda58..ebfbbcc296 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3822,7 +3822,7 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsAccelPtr caps, char *str = NULL; xmlNodePtr hostCPUNode; xmlNodePtr *nodes = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) qemuMonitorCPUModelInfoPtr hostCPU = NULL; g_autofree char *xpath = g_strdup_printf("./hostCPU[@type='%s']", typeStr); int ret = -1; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 56999c2c46..a74f0d121f 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2520,7 +2520,7 @@ qemuDomainObjPrivateXMLParseBlockjobChain(xmlNodePtr node, virDomainXMLOptionPtr xmlopt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *format = NULL; g_autofree char *type = NULL; g_autofree char *index = NULL; @@ -2694,7 +2694,7 @@ qemuDomainObjPrivateXMLParseBlockjobData(virDomainObjPtr vm, xmlXPathContextPtr ctxt, virDomainXMLOptionPtr xmlopt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainDiskDefPtr disk = NULL; g_autoptr(qemuBlockJobData) job = NULL; g_autofree char *name = NULL; @@ -2876,7 +2876,7 @@ qemuDomainObjPrivateXMLParseSlirpFeatures(xmlNodePtr featuresNode, xmlXPathContextPtr ctxt, qemuSlirpPtr slirp) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree xmlNodePtr *nodes = NULL; size_t i; int n; diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 6393cc0b40..aeca738c5d 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -1298,7 +1298,7 @@ qemuDomainObjPrivateXMLParseJobNBDSource(xmlNodePtr node, virDomainDiskDefPtr disk, virDomainXMLOptionPtr xmlopt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) qemuDomainDiskPrivatePtr diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk); g_autofree char *format = NULL; g_autofree char *type = NULL; @@ -1382,7 +1382,7 @@ qemuDomainObjPrivateXMLParseJob(virDomainObjPtr vm, { qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainJobObjPtr job = &priv->job; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *tmp = NULL; if (!(ctxt->node = virXPathNode("./job[1]", ctxt))) diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 81b557e0a8..cef2555988 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -935,7 +935,7 @@ qemuMigrationCookieNetworkXMLParse(xmlXPathContextPtr ctxt) int n; xmlNodePtr *interfaces = NULL; char *vporttype; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) if (VIR_ALLOC(optr) < 0) goto error; @@ -983,7 +983,7 @@ qemuMigrationCookieNBDXMLParse(xmlXPathContextPtr ctxt) size_t i; int n; xmlNodePtr *disks = NULL; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) if (VIR_ALLOC(ret) < 0) goto error; @@ -1043,7 +1043,7 @@ qemuMigrationCookieStatisticsXMLParse(xmlXPathContextPtr ctxt) { qemuDomainJobInfoPtr jobInfo = NULL; qemuMonitorMigrationStats *stats; - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) if (!(ctxt->node = virXPathNode("./statistics", ctxt))) return NULL; diff --git a/src/util/virstorageencryption.c b/src/util/virstorageencryption.c index 94ccaf1e9a..76958b3876 100644 --- a/src/util/virstorageencryption.c +++ b/src/util/virstorageencryption.c @@ -143,7 +143,7 @@ static virStorageEncryptionSecretPtr virStorageEncryptionSecretParse(xmlXPathContextPtr ctxt, xmlNodePtr node) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virStorageEncryptionSecretPtr ret; char *type_str = NULL; @@ -237,7 +237,7 @@ virStorageEncryptionPtr virStorageEncryptionParseNode(xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr *nodes = NULL; virStorageEncryptionPtr encdef = NULL; virStorageEncryptionPtr ret = NULL; diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 51037c691f..97a346db28 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1781,7 +1781,7 @@ virStorageAuthDefPtr virStorageAuthDefParse(xmlNodePtr node, xmlXPathContextPtr ctxt) { - VIR_XPATH_NODE_AUTORESTORE(ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) virStorageAuthDefPtr ret = NULL; xmlNodePtr secretnode = NULL; g_autoptr(virStorageAuthDef) authdef = NULL; -- 2.26.2

Add a macro to suppress the warning. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/internal.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/internal.h b/src/internal.h index 3aa3c6ca67..d95db330b3 100644 --- a/src/internal.h +++ b/src/internal.h @@ -194,6 +194,10 @@ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wunused-variable\"") +#define VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wdeclaration-after-statement\"") + #define VIR_WARNINGS_RESET \ _Pragma ("GCC diagnostic pop") -- 2.26.2

Some test rely too much on declaring variables in the middle of the function. Use the macro to locally suppress the warning Signed-off-by: Ján Tomko <jtomko@redhat.com> --- tests/domaincapstest.c | 2 ++ tests/virnetsockettest.c | 2 ++ tests/virnettlscontexttest.c | 3 +++ tests/virnettlssessiontest.c | 3 +++ tests/virstoragetest.c | 2 ++ tests/virstringtest.c | 4 ++++ tests/viruritest.c | 2 ++ 7 files changed, 18 insertions(+) diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index c3a9f4ef91..1c3acdcd25 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -287,6 +287,7 @@ doTestQemuInternal(const char *version, capsName = g_strdup_printf("caps_%s", version); emulator = g_strdup_printf("/usr/bin/qemu-system-%s", arch); + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT struct testData data = { .name = name, .emulator = emulator, @@ -297,6 +298,7 @@ doTestQemuInternal(const char *version, .capsName = capsName, .capsOpaque = opaque, }; + VIR_WARNINGS_RESET if (virTestRun(name, test_virDomainCapsFormat, &data) < 0) return -1; diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c index 96c582216c..7d2ad36aae 100644 --- a/tests/virnetsockettest.c +++ b/tests/virnetsockettest.c @@ -572,6 +572,7 @@ mymain(void) if (virTestRun("Socket External Command /dev/does-not-exist", testSocketCommandFail, NULL) < 0) ret = -1; + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT struct testSSHData sshData1 = { .nodename = "somehost", .path = "/tmp/socket", @@ -675,6 +676,7 @@ mymain(void) "fi;" "'''\\''/tmp/fo o/nc'\\'''' $ARG -U /tmp/socket'\n", }; + VIR_WARNINGS_RESET if (virTestRun("SSH test 7", testSocketSSH, &sshData7) < 0) ret = -1; diff --git a/tests/virnettlscontexttest.c b/tests/virnettlscontexttest.c index 6d970d0ea8..9860e0ec3e 100644 --- a/tests/virnettlscontexttest.c +++ b/tests/virnettlscontexttest.c @@ -136,6 +136,7 @@ mymain(void) }; \ testTLSGenerateCert(&varname, cavarname.crt) + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT # define TLS_ROOT_REQ(varname, \ co, cn, an1, an2, ia1, ia2, bce, bcc, bci, \ kue, kuc, kuv, kpe, kpc, kpo1, kpo2, so, eo) \ @@ -563,6 +564,8 @@ mymain(void) certchain, G_N_ELEMENTS(certchain)); + VIR_WARNINGS_RESET + DO_CTX_TEST(true, "cacertchain-ctx.pem", servercertlevel3areq.filename, false); DO_CTX_TEST(false, "cacertchain-ctx.pem", clientcertlevel2breq.filename, false); diff --git a/tests/virnettlssessiontest.c b/tests/virnettlssessiontest.c index 6807581d70..ebb90ad5a2 100644 --- a/tests/virnettlssessiontest.c +++ b/tests/virnettlssessiontest.c @@ -277,6 +277,7 @@ mymain(void) ret = -1; \ } while (0) + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT # define TLS_CERT_REQ(varname, cavarname, \ co, cn, an1, an2, ia1, ia2, bce, bcc, bci, \ kue, kuc, kuv, kpe, kpc, kpo1, kpo2, so, eo) \ @@ -460,6 +461,8 @@ mymain(void) DO_SESS_TEST("cacertchain-sess.pem", servercertlevel3areq.filename, clientcertlevel2breq.filename, false, false, "libvirt.org", NULL); + VIR_WARNINGS_RESET + testTLSDiscardCert(&clientcertreq); testTLSDiscardCert(&clientcertaltreq); diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index 98f47f0e41..179ae5e5e7 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -682,6 +682,7 @@ mymain(void) /* Missing file */ TEST_ONE_CHAIN("bogus", VIR_STORAGE_FILE_RAW, EXP_FAIL); + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT /* Raw image, whether with right format or no specified format */ testFileData raw = { .path = absraw, @@ -963,6 +964,7 @@ mymain(void) }; TEST_CHAIN(absqcow2, VIR_STORAGE_FILE_QCOW2, (&qcow2, &rbd2), EXP_PASS); + VIR_WARNINGS_RESET /* Rewrite wrap and qcow2 back to 3-deep chain, absolute backing */ virCommandFree(cmd); diff --git a/tests/virstringtest.c b/tests/virstringtest.c index 8b8d2acced..704686ac10 100644 --- a/tests/virstringtest.c +++ b/tests/virstringtest.c @@ -691,6 +691,7 @@ mymain(void) ret = -1; \ } while (0) + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT const char *tokens1[] = { NULL }; TEST_SPLIT("", " ", 0, tokens1); @@ -714,6 +715,7 @@ mymain(void) const char *tokens8[] = { "gluster", "rdma", NULL }; TEST_SPLIT("gluster+rdma", "+", 2, tokens8); + VIR_WARNINGS_RESET if (virTestRun("virStringSortCompare", testStringSortCompare, NULL) < 0) ret = -1; @@ -741,6 +743,7 @@ mymain(void) /* None matching */ TEST_SEARCH("foo", "(bar)", 10, 0, NULL, false); + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT /* Full match */ const char *matches1[] = { "foo" }; TEST_SEARCH("foo", "(foo)", 10, 1, matches1, false); @@ -752,6 +755,7 @@ mymain(void) /* Multi matches, limited returns */ const char *matches3[] = { "foo", "bar" }; TEST_SEARCH("1foo2bar3eek", "([a-z]+)", 2, 2, matches3, false); + VIR_WARNINGS_RESET #define TEST_MATCH(s, r, m) \ do { \ diff --git a/tests/viruritest.c b/tests/viruritest.c index 0edf3e5522..587498bc2b 100644 --- a/tests/viruritest.c +++ b/tests/viruritest.c @@ -166,6 +166,7 @@ mymain(void) *query_out ? "test://example.com/?" query_out : NULL, \ "test", "example.com", 0, "/", query_in, NULL, NULL, params) + VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT virURIParam params[] = { { (char*)"name", (char*)"value", false }, { NULL, NULL, false }, @@ -216,6 +217,7 @@ mymain(void) { (char*)"foo", (char*)"one", false }, { NULL, NULL, false }, }; + VIR_WARNINGS_RESET TEST_PARAMS("foo=one&bar=two", "", params1); TEST_PARAMS("foo=one&foo=two", "", params2); -- 2.26.2

Now that all the users have been converted or silenced, let's enable this warning. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 48b937d6bb..fe75718cac 100644 --- a/meson.build +++ b/meson.build @@ -236,6 +236,7 @@ cc_flags += [ '-Wcpp', '-Wdangling-else', '-Wdate-time', + '-Wdeclaration-after-statement', '-Wdeprecated-declarations', '-Wdesignated-init', '-Wdiscarded-array-qualifiers', @@ -555,7 +556,6 @@ cc_flags_disabled = [ # We might fundamentally need some of these disabled forever, but # ideally we'd turn many of them on '-Wfloat-equal', - '-Wdeclaration-after-statement', '-Wpacked', '-Wunused-macros', '-Woverlength-strings', -- 2.26.2

On 8/3/20 6:56 PM, Ján Tomko wrote:
Most of the changes required to build with -Wdeclaration-after-statement seem pretty reasonable. Not so sure about the lack of semicolon after VIR_XPATH_NODE_AUTORESTORE
https://gitlab.com/jano.tomko/libvirt/-/pipelines/173793788
Ján Tomko (19): util: virRandomInt: remove temporary variable util: virHostMemSetParameters: remove pointless variable util: virHostMem*Parameters: split out non-Linux stubs util: move declarations in virStorageFileChainLookup Move declarations before statements Split declarations from initializations Move debug statements after declarations rpc: move lock after declaration security: move chardevData declaration util: virNetDevBridgeSet: split declarations tests: sockettest: move declarations tests: authconfigtest: move declarations util: cgroup: wrap BACKEND_CALL macro in a block tests: iscsitest: split out testISCSIScanTargetsTests util: xml: use pragma in VIR_XPATH_NODE_AUTORESTORE VIR_XPATH_NODE_AUTORESTORE: remove semicolon from users src: internal: add VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT tests: use VIR_WARNINGS_NO_DECLARATION_AFTER_STATEMENT build: add -Wdeclaration-after-statement
meson.build | 2 +- src/bhyve/bhyve_parse_command.c | 3 +- src/conf/backup_conf.c | 2 +- src/conf/checkpoint_conf.c | 2 +- src/conf/cpu_conf.c | 2 +- src/conf/domain_conf.c | 118 +++++++++++----------- src/conf/interface_conf.c | 8 +- src/conf/netdev_vlan_conf.c | 2 +- src/conf/network_conf.c | 21 ++-- src/conf/networkcommon_conf.c | 2 +- src/conf/node_device_conf.c | 34 +++---- src/conf/numa_conf.c | 6 +- src/conf/nwfilter_conf.c | 5 +- src/conf/snapshot_conf.c | 2 +- src/conf/storage_adapter_conf.c | 2 +- src/conf/storage_conf.c | 2 +- src/conf/virsavecookie.c | 2 +- src/conf/virstorageobj.c | 3 +- src/cpu/cpu_map.c | 4 +- src/cpu/cpu_x86.c | 2 +- src/internal.h | 9 ++ src/lxc/lxc_container.c | 4 +- src/lxc/lxc_controller.c | 6 +- src/lxc/lxc_domain.c | 2 +- src/lxc/lxc_driver.c | 5 +- src/nwfilter/nwfilter_ebiptables_driver.c | 8 +- src/nwfilter/nwfilter_learnipaddr.c | 2 +- src/openvz/openvz_conf.c | 12 +-- src/qemu/qemu_capabilities.c | 2 +- src/qemu/qemu_command.c | 8 +- src/qemu/qemu_domain.c | 12 ++- src/qemu/qemu_domainjob.c | 4 +- src/qemu/qemu_migration_cookie.c | 6 +- src/qemu/qemu_monitor.c | 9 +- src/qemu/qemu_process.c | 10 +- src/remote/remote_daemon_dispatch.c | 6 +- src/remote/remote_daemon_stream.c | 13 ++- src/remote/remote_driver.c | 24 +++-- src/rpc/virnetclient.c | 8 +- src/rpc/virnetmessage.c | 4 +- src/rpc/virnetsocket.c | 9 +- src/security/security_dac.c | 20 ++-- src/security/security_selinux.c | 20 ++-- src/storage/storage_backend_disk.c | 2 +- src/storage/storage_file_fs.c | 3 +- src/storage/storage_util.c | 2 +- src/util/vircgroupbackend.h | 26 ++--- src/util/virdaemon.c | 4 +- src/util/virdbus.c | 4 +- src/util/virerror.c | 3 +- src/util/virfile.c | 14 ++- src/util/virfirewall.c | 3 +- src/util/virhostmem.c | 37 ++++--- src/util/virkeycode.c | 4 +- src/util/virnetdevbridge.c | 6 +- src/util/virnetdevip.c | 4 +- src/util/virnetlink.c | 10 +- src/util/virobject.c | 5 +- src/util/virprocess.c | 3 +- src/util/virqemu.c | 2 +- src/util/virrandom.c | 3 +- src/util/virstorageencryption.c | 4 +- src/util/virstoragefile.c | 20 ++-- src/util/virutil.c | 8 +- src/util/virxml.h | 3 +- src/vbox/vbox_common.c | 21 ++-- src/vbox/vbox_snapshot_conf.c | 8 +- src/vz/vz_driver.c | 10 +- tests/commandhelper.c | 5 +- tests/domaincapstest.c | 2 + tests/eventtest.c | 5 +- tests/nodedevmdevctltest.c | 3 +- tests/sockettest.c | 24 +++-- tests/virauthconfigtest.c | 28 ++--- tests/vircgroupmock.c | 8 +- tests/viriscsitest.c | 47 +++++---- tests/virnetsockettest.c | 2 + tests/virnettlscontexttest.c | 3 + tests/virnettlssessiontest.c | 3 + tests/virrotatingfiletest.c | 7 +- tests/virstoragetest.c | 2 + tests/virstringtest.c | 4 + tests/viruritest.c | 2 + tools/virsh-domain.c | 12 ++- tools/virsh-interface.c | 3 +- tools/virsh-network.c | 3 +- tools/virsh-nodedev.c | 2 +- tools/virsh-util.c | 3 +- tools/virsh-volume.c | 5 +- tools/virt-host-validate-common.c | 3 +- tools/wireshark/src/packet-libvirt.c | 3 +- 91 files changed, 481 insertions(+), 334 deletions(-)
We need those RFC patches too, because otherwise GCC will see VIR_XPATH_NODE_AUTORESTORE() as a start of a code block and error out. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
participants (2)
-
Ján Tomko
-
Michal Privoznik