[PATCH 11/13] lib: use struct zero initializer instead of memset
Claudio Fontana
cfontana at suse.de
Thu Aug 3 12:23:47 UTC 2023
On 8/3/23 12:36, Michal Privoznik wrote:
> This is a more concise approach and guarantees there is
> no time window where the struct is uninitialized.
>
> Generated using the following semantic patch:
>
> @@
> type T;
> identifier X;
> @@
> - T X;
> + T X = { 0 };
> ... when exists
> (
> - memset(&X, 0, sizeof(X));
> |
> - memset(&X, 0, sizeof(T));
> )
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
Reviewed-by: Claudio Fontana <cfontana at suse.de>
> ---
> src/ch/ch_monitor.c | 3 +-
> src/conf/domain_conf.c | 8 +-
> src/conf/network_conf.c | 28 ++----
> src/cpu/cpu_x86.c | 4 +-
> src/esx/esx_driver.c | 20 ++---
> src/esx/esx_interface_driver.c | 13 +--
> src/esx/esx_storage_backend_iscsi.c | 11 +--
> src/esx/esx_storage_backend_vmfs.c | 19 ++--
> src/esx/esx_util.c | 4 +-
> src/libxl/libxl_driver.c | 9 +-
> src/locking/lock_driver_lockd.c | 19 ++--
> src/logging/log_manager.c | 25 ++----
> src/lxc/lxc_controller.c | 6 +-
> src/lxc/lxc_domain.c | 4 +-
> src/lxc/lxc_driver.c | 4 +-
> src/nwfilter/nwfilter_dhcpsnoop.c | 4 +-
> src/nwfilter/nwfilter_gentech_driver.c | 4 +-
> src/qemu/qemu_agent.c | 10 +--
> src/qemu/qemu_command.c | 3 +-
> src/qemu/qemu_driver.c | 7 +-
> src/qemu/qemu_monitor.c | 6 +-
> src/qemu/qemu_monitor_json.c | 7 +-
> src/qemu/qemu_process.c | 3 +-
> src/remote/remote_daemon_dispatch.c | 115 ++++++++-----------------
> src/remote/remote_daemon_stream.c | 23 ++---
> src/remote/remote_driver.c | 13 +--
> src/rpc/virnetclientprogram.c | 4 +-
> src/rpc/virnetclientstream.c | 9 +-
> src/rpc/virnetdaemon.c | 3 +-
> src/rpc/virnetsaslcontext.c | 3 +-
> src/rpc/virnetserverprogram.c | 14 +--
> src/rpc/virnetsocket.c | 49 +++--------
> src/rpc/virnetsshsession.c | 3 +-
> src/storage/storage_backend_logical.c | 10 +--
> src/util/virarptable.c | 3 +-
> src/util/virauth.c | 4 +-
> src/util/virbpf.c | 52 +++--------
> src/util/virdevmapper.c | 8 +-
> src/util/virfdstream.c | 3 +-
> src/util/virfile.c | 3 +-
> src/util/virinitctl.c | 4 +-
> src/util/viriscsi.c | 4 +-
> src/util/virlog.c | 9 +-
> src/util/virnetdev.c | 8 +-
> src/util/virnetdevbridge.c | 10 +--
> src/util/virnetdevip.c | 8 +-
> src/util/virnetdevtap.c | 3 +-
> src/util/virperf.c | 3 +-
> src/util/virprocess.c | 3 +-
> src/util/virsocket.c | 6 +-
> src/util/virsocketaddr.c | 7 +-
> src/util/viruri.c | 4 +-
> src/vbox/vbox_storage.c | 10 +--
> src/vmx/vmx.c | 4 +-
> tests/nsstest.c | 8 +-
> tests/nwfilterxml2firewalltest.c | 4 +-
> tests/qemumonitorjsontest.c | 6 +-
> tests/qemumonitortestutils.c | 8 +-
> tests/qemuxml2argvtest.c | 4 +-
> tests/virhostcputest.c | 3 +-
> tests/virnetmessagetest.c | 8 +-
> tools/nss/libvirt_nss.c | 3 +-
> tools/virsh-domain-monitor.c | 3 +-
> tools/virsh-domain.c | 4 +-
> tools/vsh-table.c | 4 +-
> 65 files changed, 195 insertions(+), 483 deletions(-)
>
> diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c
> index d902bc6959..a4b921931b 100644
> --- a/src/ch/ch_monitor.c
> +++ b/src/ch/ch_monitor.c
> @@ -468,7 +468,7 @@ virCHMonitorBuildVMJson(virDomainDef *vmdef,
> static int
> chMonitorCreateSocket(const char *socket_path)
> {
> - struct sockaddr_un addr;
> + struct sockaddr_un addr = { 0 };
> socklen_t addrlen = sizeof(addr);
> int fd;
>
> @@ -478,7 +478,6 @@ chMonitorCreateSocket(const char *socket_path)
> goto error;
> }
>
> - memset(&addr, 0, sizeof(addr));
> addr.sun_family = AF_UNIX;
> if (virStrcpyStatic(addr.sun_path, socket_path) < 0) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 5ac5c0b771..47693a49bf 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -28859,9 +28859,7 @@ int
> virDomainGraphicsListenAppendAddress(virDomainGraphicsDef *def,
> const char *address)
> {
> - virDomainGraphicsListenDef glisten;
> -
> - memset(&glisten, 0, sizeof(glisten));
> + virDomainGraphicsListenDef glisten = { 0 };
>
> glisten.type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
>
> @@ -28877,9 +28875,7 @@ int
> virDomainGraphicsListenAppendSocket(virDomainGraphicsDef *def,
> const char *socketPath)
> {
> - virDomainGraphicsListenDef glisten;
> -
> - memset(&glisten, 0, sizeof(glisten));
> + virDomainGraphicsListenDef glisten = { 0 };
>
> glisten.type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET;
>
> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
> index 73788b6d87..3e137cb562 100644
> --- a/src/conf/network_conf.c
> +++ b/src/conf/network_conf.c
> @@ -2748,11 +2748,9 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDef *def,
> size_t i;
> int ret = -1;
> virNetworkIPDef *ipdef = virNetworkIPDefByIndex(def, parentIndex);
> - virNetworkDHCPHostDef host;
> + virNetworkDHCPHostDef host = { 0 };
> bool partialOkay = (command == VIR_NETWORK_UPDATE_COMMAND_DELETE);
>
> - memset(&host, 0, sizeof(host));
> -
> if (virNetworkDefUpdateCheckElementName(def, ctxt->node, "host") < 0)
> goto cleanup;
>
> @@ -2881,9 +2879,7 @@ virNetworkDefUpdateIPDHCPRange(virNetworkDef *def,
> {
> size_t i;
> virNetworkIPDef *ipdef = virNetworkIPDefByIndex(def, parentIndex);
> - virNetworkDHCPRangeDef range;
> -
> - memset(&range, 0, sizeof(range));
> + virNetworkDHCPRangeDef range = { 0 };
>
> if (virNetworkDefUpdateCheckElementName(def, ctxt->node, "range") < 0)
> return -1;
> @@ -2990,9 +2986,7 @@ virNetworkDefUpdateForwardInterface(virNetworkDef *def,
> {
> size_t i;
> int ret = -1;
> - virNetworkForwardIfDef iface;
> -
> - memset(&iface, 0, sizeof(iface));
> + virNetworkForwardIfDef iface = { 0 };
>
> if (virNetworkDefUpdateCheckElementName(def, ctxt->node, "interface") < 0)
> goto cleanup;
> @@ -3094,9 +3088,7 @@ virNetworkDefUpdatePortGroup(virNetworkDef *def,
> size_t i;
> int foundName = -1, foundDefault = -1;
> int ret = -1;
> - virPortGroupDef portgroup;
> -
> - memset(&portgroup, 0, sizeof(portgroup));
> + virPortGroupDef portgroup = { 0 };
>
> if (virNetworkDefUpdateCheckElementName(def, ctxt->node, "portgroup") < 0)
> goto cleanup;
> @@ -3184,13 +3176,11 @@ virNetworkDefUpdateDNSHost(virNetworkDef *def,
> size_t i, j, k;
> int foundIdx = -1, ret = -1;
> virNetworkDNSDef *dns = &def->dns;
> - virNetworkDNSHostDef host;
> + virNetworkDNSHostDef host = { 0 };
> bool isAdd = (command == VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST ||
> command == VIR_NETWORK_UPDATE_COMMAND_ADD_LAST);
> int foundCt = 0;
>
> - memset(&host, 0, sizeof(host));
> -
> if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
> virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
> _("DNS HOST records cannot be modified, "
> @@ -3283,13 +3273,11 @@ virNetworkDefUpdateDNSSrv(virNetworkDef *def,
> size_t i;
> int foundIdx = -1, ret = -1;
> virNetworkDNSDef *dns = &def->dns;
> - virNetworkDNSSrvDef srv;
> + virNetworkDNSSrvDef srv = { 0 };
> bool isAdd = (command == VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST ||
> command == VIR_NETWORK_UPDATE_COMMAND_ADD_LAST);
> int foundCt = 0;
>
> - memset(&srv, 0, sizeof(srv));
> -
> if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
> virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
> _("DNS SRV records cannot be modified, "
> @@ -3368,12 +3356,10 @@ virNetworkDefUpdateDNSTxt(virNetworkDef *def,
> {
> int foundIdx, ret = -1;
> virNetworkDNSDef *dns = &def->dns;
> - virNetworkDNSTxtDef txt;
> + virNetworkDNSTxtDef txt = { 0 };
> bool isAdd = (command == VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST ||
> command == VIR_NETWORK_UPDATE_COMMAND_ADD_LAST);
>
> - memset(&txt, 0, sizeof(txt));
> -
> if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
> virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
> _("DNS TXT records cannot be modified, "
> diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
> index 3c0163c4d1..b9513e24d5 100644
> --- a/src/cpu/cpu_x86.c
> +++ b/src/cpu/cpu_x86.c
> @@ -1073,9 +1073,7 @@ static int
> x86ParseMSR(xmlNodePtr node,
> virCPUx86DataItem *item)
> {
> - virCPUx86MSR msr;
> -
> - memset(&msr, 0, sizeof(msr));
> + virCPUx86MSR msr = { 0 };
>
> if (virXMLPropUInt(node, "index", 0, VIR_XML_PROP_REQUIRED, &msr.index) < 0)
> return -1;
> diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
> index 0d1b10fe8b..b243bbf411 100644
> --- a/src/esx/esx_driver.c
> +++ b/src/esx/esx_driver.c
> @@ -2536,14 +2536,12 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
> g_autofree char *url = NULL;
> g_autofree char *vmx = NULL;
> virVMXContext ctx;
> - esxVMX_Data data;
> + esxVMX_Data data = { 0 };
> g_autoptr(virDomainDef) def = NULL;
> char *xml = NULL;
>
> virCheckFlags(VIR_DOMAIN_XML_COMMON_FLAGS, NULL);
>
> - memset(&data, 0, sizeof(data));
> -
> if (esxVI_EnsureSession(priv->primary) < 0)
> return NULL;
>
> @@ -2622,14 +2620,12 @@ esxConnectDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat,
> {
> esxPrivate *priv = conn->privateData;
> virVMXContext ctx;
> - esxVMX_Data data;
> + esxVMX_Data data = { 0 };
> g_autoptr(virDomainDef) def = NULL;
> char *xml = NULL;
>
> virCheckFlags(0, NULL);
>
> - memset(&data, 0, sizeof(data));
> -
> if (STRNEQ(nativeFormat, VMX_CONFIG_FORMAT_ARGV)) {
> virReportError(VIR_ERR_INVALID_ARG,
> _("Unsupported config format '%1$s'"), nativeFormat);
> @@ -2665,14 +2661,12 @@ esxConnectDomainXMLToNative(virConnectPtr conn, const char *nativeFormat,
> esxPrivate *priv = conn->privateData;
> int virtualHW_version;
> virVMXContext ctx;
> - esxVMX_Data data;
> + esxVMX_Data data = { 0 };
> g_autoptr(virDomainDef) def = NULL;
> char *vmx = NULL;
>
> virCheckFlags(0, NULL);
>
> - memset(&data, 0, sizeof(data));
> -
> if (STRNEQ(nativeFormat, VMX_CONFIG_FORMAT_ARGV)) {
> virReportError(VIR_ERR_INVALID_ARG,
> _("Unsupported config format '%1$s'"), nativeFormat);
> @@ -2870,7 +2864,7 @@ esxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
> esxVI_ObjectContent *virtualMachine = NULL;
> int virtualHW_version;
> virVMXContext ctx;
> - esxVMX_Data data;
> + esxVMX_Data data = { 0 };
> g_autofree char *datastoreName = NULL;
> g_autofree char *directoryName = NULL;
> g_autofree char *escapedName = NULL;
> @@ -2892,8 +2886,6 @@ esxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
> if (flags & VIR_DOMAIN_DEFINE_VALIDATE)
> parse_flags |= VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA;
>
> - memset(&data, 0, sizeof(data));
> -
> if (esxVI_EnsureSession(priv->primary) < 0)
> return NULL;
>
> @@ -4058,14 +4050,12 @@ esxDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
> esxVI_VirtualMachineSnapshotTree *rootSnapshotList = NULL;
> esxVI_VirtualMachineSnapshotTree *snapshotTree = NULL;
> esxVI_VirtualMachineSnapshotTree *snapshotTreeParent = NULL;
> - virDomainSnapshotDef def;
> + virDomainSnapshotDef def = { 0 };
> char uuid_string[VIR_UUID_STRING_BUFLEN] = "";
> char *xml = NULL;
>
> virCheckFlags(0, NULL);
>
> - memset(&def, 0, sizeof(def));
> -
> if (esxVI_EnsureSession(priv->primary) < 0)
> return NULL;
>
> diff --git a/src/esx/esx_interface_driver.c b/src/esx/esx_interface_driver.c
> index d6b6410d1a..125155da99 100644
> --- a/src/esx/esx_interface_driver.c
> +++ b/src/esx/esx_interface_driver.c
> @@ -157,21 +157,16 @@ esxInterfaceGetXMLDesc(virInterfacePtr iface, unsigned int flags)
> char *xml = NULL;
> esxPrivate *priv = iface->conn->privateData;
> esxVI_PhysicalNic *physicalNic = NULL;
> - virInterfaceDef def;
> + virInterfaceDef def = { 0 };
> bool hasAddress = false;
> virInterfaceProtocolDef *protocols;
> - virInterfaceProtocolDef protocol;
> - virSocketAddr socketAddress;
> + virInterfaceProtocolDef protocol = { 0 };
> + virSocketAddr socketAddress = { 0 };
> virInterfaceIPDef *ips;
> - virInterfaceIPDef ip;
> + virInterfaceIPDef ip = { 0 };
>
> virCheckFlags(VIR_INTERFACE_XML_INACTIVE, NULL);
>
> - memset(&def, 0, sizeof(def));
> - memset(&protocol, 0, sizeof(protocol));
> - memset(&socketAddress, 0, sizeof(socketAddress));
> - memset(&ip, 0, sizeof(ip));
> -
> if (esxVI_EnsureSession(priv->primary) < 0 ||
> esxVI_LookupPhysicalNicByMACAddress(priv->primary, iface->mac,
> &physicalNic,
> diff --git a/src/esx/esx_storage_backend_iscsi.c b/src/esx/esx_storage_backend_iscsi.c
> index 087365392b..c00b1e4f32 100644
> --- a/src/esx/esx_storage_backend_iscsi.c
> +++ b/src/esx/esx_storage_backend_iscsi.c
> @@ -302,12 +302,10 @@ esxStoragePoolGetXMLDesc(virStoragePoolPtr pool, unsigned int flags)
> esxPrivate *priv = pool->conn->privateData;
> esxVI_HostInternetScsiHba *hostInternetScsiHba = NULL;
> esxVI_HostInternetScsiHbaStaticTarget *target;
> - virStoragePoolDef def;
> + virStoragePoolDef def = { 0 };
>
> virCheckFlags(0, NULL);
>
> - memset(&def, 0, sizeof(def));
> -
> if (esxVI_LookupHostInternetScsiHba(priv->primary, &hostInternetScsiHba))
> goto cleanup;
>
> @@ -664,20 +662,17 @@ esxStorageVolGetXMLDesc(virStorageVolPtr volume,
> {
> char *xml = NULL;
> esxPrivate *priv = volume->conn->privateData;
> - virStoragePoolDef pool;
> + virStoragePoolDef pool = { 0 };
> esxVI_ScsiLun *scsiLunList = NULL;
> esxVI_ScsiLun *scsiLun;
> esxVI_HostScsiDisk *hostScsiDisk = NULL;
> - virStorageVolDef def;
> + virStorageVolDef def = { 0 };
> /* VIR_CRYPTO_HASH_SIZE_MD5 = VIR_UUID_BUFLEN = 16 */
> unsigned char md5[VIR_CRYPTO_HASH_SIZE_MD5];
> char uuid_string[VIR_UUID_STRING_BUFLEN] = "";
>
> virCheckFlags(0, NULL);
>
> - memset(&pool, 0, sizeof(pool));
> - memset(&def, 0, sizeof(def));
> -
> if (esxVI_LookupScsiLunList(priv->primary, &scsiLunList) < 0)
> goto cleanup;
>
> diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
> index f00c7eec4e..7c5df1c9cd 100644
> --- a/src/esx/esx_storage_backend_vmfs.c
> +++ b/src/esx/esx_storage_backend_vmfs.c
> @@ -442,15 +442,13 @@ esxStoragePoolGetXMLDesc(virStoragePoolPtr pool, unsigned int flags)
> esxVI_DatastoreHostMount *hostMount = NULL;
> esxVI_DynamicProperty *dynamicProperty = NULL;
> esxVI_Boolean accessible = esxVI_Boolean_Undefined;
> - virStoragePoolDef def;
> + virStoragePoolDef def = { 0 };
> esxVI_DatastoreInfo *info = NULL;
> esxVI_NasDatastoreInfo *nasInfo = NULL;
> char *xml = NULL;
>
> virCheckFlags(0, NULL);
>
> - memset(&def, 0, sizeof(def));
> -
> if (esxVI_String_AppendValueListToList(&propertyNameList,
> "summary.accessible\0"
> "summary.capacity\0"
> @@ -833,7 +831,7 @@ esxStorageVolCreateXML(virStoragePoolPtr pool,
> {
> virStorageVolPtr volume = NULL;
> esxPrivate *priv = pool->conn->privateData;
> - virStoragePoolDef poolDef;
> + virStoragePoolDef poolDef = { 0 };
> char *tmp;
> g_autofree char *unescapedDatastorePath = NULL;
> g_autofree char *unescapedDirectoryName = NULL;
> @@ -853,8 +851,6 @@ esxStorageVolCreateXML(virStoragePoolPtr pool,
>
> virCheckFlags(0, NULL);
>
> - memset(&poolDef, 0, sizeof(poolDef));
> -
> if (esxLookupVMFSStoragePoolType(priv->primary, pool->name,
> &poolDef.type) < 0) {
> goto cleanup;
> @@ -1032,7 +1028,7 @@ esxStorageVolCreateXMLFrom(virStoragePoolPtr pool,
> {
> virStorageVolPtr volume = NULL;
> esxPrivate *priv = pool->conn->privateData;
> - virStoragePoolDef poolDef;
> + virStoragePoolDef poolDef = { 0 };
> g_autofree char *sourceDatastorePath = NULL;
> char *tmp;
> g_autofree char *unescapedDatastorePath = NULL;
> @@ -1052,8 +1048,6 @@ esxStorageVolCreateXMLFrom(virStoragePoolPtr pool,
>
> virCheckFlags(0, NULL);
>
> - memset(&poolDef, 0, sizeof(poolDef));
> -
> if (esxLookupVMFSStoragePoolType(priv->primary, pool->name,
> &poolDef.type) < 0) {
> goto cleanup;
> @@ -1312,20 +1306,17 @@ esxStorageVolGetXMLDesc(virStorageVolPtr volume,
> unsigned int flags)
> {
> esxPrivate *priv = volume->conn->privateData;
> - virStoragePoolDef pool;
> + virStoragePoolDef pool = { 0 };
> g_autofree char *datastorePath = NULL;
> esxVI_FileInfo *fileInfo = NULL;
> esxVI_VmDiskFileInfo *vmDiskFileInfo = NULL;
> esxVI_IsoImageFileInfo *isoImageFileInfo = NULL;
> esxVI_FloppyImageFileInfo *floppyImageFileInfo = NULL;
> - virStorageVolDef def;
> + virStorageVolDef def = { 0 };
> char *xml = NULL;
>
> virCheckFlags(0, NULL);
>
> - memset(&pool, 0, sizeof(pool));
> - memset(&def, 0, sizeof(def));
> -
> if (esxLookupVMFSStoragePoolType(priv->primary, volume->pool,
> &pool.type) < 0) {
> return NULL;
> diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
> index fbbf226555..785701a518 100644
> --- a/src/esx/esx_util.c
> +++ b/src/esx/esx_util.c
> @@ -272,13 +272,11 @@ esxUtil_ParseDatastorePath(const char *datastorePath, char **datastoreName,
> int
> esxUtil_ResolveHostname(const char *hostname, char **ipAddress)
> {
> - struct addrinfo hints;
> + struct addrinfo hints = { 0 };
> struct addrinfo *result = NULL;
> int errcode;
> g_autofree char *address = NULL;
>
> - memset(&hints, 0, sizeof(hints));
> -
> hints.ai_flags = AI_ADDRCONFIG;
> hints.ai_family = AF_INET;
> hints.ai_socktype = SOCK_STREAM;
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index 2644d1400a..3d10f45850 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -1796,7 +1796,7 @@ libxlDoDomainSave(libxlDriverPrivate *driver,
> bool managed)
> {
> libxlDriverConfig *cfg = libxlDriverConfigGet(driver);
> - libxlSavefileHeader hdr;
> + libxlSavefileHeader hdr = { 0 };
> virObjectEvent *event = NULL;
> g_autofree char *xml = NULL;
> uint32_t xml_len;
> @@ -1821,7 +1821,6 @@ libxlDoDomainSave(libxlDriverPrivate *driver,
> goto cleanup;
> xml_len = strlen(xml) + 1;
>
> - memset(&hdr, 0, sizeof(hdr));
> memcpy(hdr.magic, LIBXL_SAVE_MAGIC, sizeof(hdr.magic));
> hdr.version = LIBXL_SAVE_VERSION;
> hdr.xmlLen = xml_len;
> @@ -5651,7 +5650,7 @@ libxlDomainBlockStats(virDomainPtr dom,
> virDomainBlockStatsPtr stats)
> {
> virDomainObj *vm;
> - libxlBlockStats blkstats;
> + libxlBlockStats blkstats = { 0 };
> int ret = -1;
>
> if (!(vm = libxlDomObjFromDomain(dom)))
> @@ -5666,7 +5665,6 @@ libxlDomainBlockStats(virDomainPtr dom,
> if (virDomainObjCheckActive(vm) < 0)
> goto endjob;
>
> - memset(&blkstats, 0, sizeof(libxlBlockStats));
> if ((ret = libxlDomainBlockStatsGather(vm, path, &blkstats)) < 0)
> goto endjob;
>
> @@ -5695,7 +5693,7 @@ libxlDomainBlockStatsFlags(virDomainPtr dom,
> unsigned int flags)
> {
> virDomainObj *vm;
> - libxlBlockStats blkstats;
> + libxlBlockStats blkstats = { 0 };
> int nstats;
> int ret = -1;
>
> @@ -5722,7 +5720,6 @@ libxlDomainBlockStatsFlags(virDomainPtr dom,
> goto endjob;
> }
>
> - memset(&blkstats, 0, sizeof(libxlBlockStats));
> if ((ret = libxlDomainBlockStatsGather(vm, path, &blkstats)) < 0)
> goto endjob;
>
> diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
> index 6b294e2954..d75302dd0a 100644
> --- a/src/locking/lock_driver_lockd.c
> +++ b/src/locking/lock_driver_lockd.c
> @@ -138,9 +138,7 @@ virLockManagerLockDaemonConnectionRegister(virLockManager *lock,
> int *counter)
> {
> virLockManagerLockDaemonPrivate *priv = lock->privateData;
> - virLockSpaceProtocolRegisterArgs args;
> -
> - memset(&args, 0, sizeof(args));
> + virLockSpaceProtocolRegisterArgs args = { 0 };
>
> args.flags = 0;
> memcpy(args.owner.uuid, priv->uuid, VIR_UUID_BUFLEN);
> @@ -167,9 +165,7 @@ virLockManagerLockDaemonConnectionRestrict(virLockManager *lock G_GNUC_UNUSED,
> virNetClientProgram *program,
> int *counter)
> {
> - virLockSpaceProtocolRestrictArgs args;
> -
> - memset(&args, 0, sizeof(args));
> + virLockSpaceProtocolRestrictArgs args = { 0 };
>
> args.flags = 0;
>
> @@ -259,11 +255,10 @@ static int virLockManagerLockDaemonSetupLockspace(const char *path)
> {
> virNetClient *client;
> virNetClientProgram *program = NULL;
> - virLockSpaceProtocolCreateLockSpaceArgs args;
> + virLockSpaceProtocolCreateLockSpaceArgs args = { 0 };
> int rv = -1;
> int counter = 0;
>
> - memset(&args, 0, sizeof(args));
> args.path = (char*)path;
>
> if (!(client = virLockManagerLockDaemonConnectionNew(geteuid() == 0, &program)))
> @@ -671,9 +666,7 @@ static int virLockManagerLockDaemonAcquire(virLockManager *lock,
> if (!(flags & VIR_LOCK_MANAGER_ACQUIRE_REGISTER_ONLY)) {
> size_t i;
> for (i = 0; i < priv->nresources; i++) {
> - virLockSpaceProtocolAcquireResourceArgs args;
> -
> - memset(&args, 0, sizeof(args));
> + virLockSpaceProtocolAcquireResourceArgs args = { 0 };
>
> args.path = priv->resources[i].lockspace;
> args.name = priv->resources[i].name;
> @@ -726,9 +719,7 @@ static int virLockManagerLockDaemonRelease(virLockManager *lock,
> goto cleanup;
>
> for (i = 0; i < priv->nresources; i++) {
> - virLockSpaceProtocolReleaseResourceArgs args;
> -
> - memset(&args, 0, sizeof(args));
> + virLockSpaceProtocolReleaseResourceArgs args = { 0 };
>
> if (priv->resources[i].lockspace)
> args.path = priv->resources[i].lockspace;
> diff --git a/src/logging/log_manager.c b/src/logging/log_manager.c
> index 6e8e7e9f1a..d8490f4e5a 100644
> --- a/src/logging/log_manager.c
> +++ b/src/logging/log_manager.c
> @@ -149,15 +149,12 @@ virLogManagerDomainOpenLogFile(virLogManager *mgr,
> ino_t *inode,
> off_t *offset)
> {
> - struct virLogManagerProtocolDomainOpenLogFileArgs args;
> - struct virLogManagerProtocolDomainOpenLogFileRet ret;
> + struct virLogManagerProtocolDomainOpenLogFileArgs args = { 0 };
> + struct virLogManagerProtocolDomainOpenLogFileRet ret = { 0 };
> int *fdout = NULL;
> size_t fdoutlen = 0;
> int rv = -1;
>
> - memset(&args, 0, sizeof(args));
> - memset(&ret, 0, sizeof(ret));
> -
> args.driver = (char *)driver;
> memcpy(args.dom.uuid, domuuid, VIR_UUID_BUFLEN);
> args.dom.name = (char *)domname;
> @@ -208,11 +205,8 @@ virLogManagerDomainGetLogFilePosition(virLogManager *mgr,
> ino_t *inode,
> off_t *offset)
> {
> - struct virLogManagerProtocolDomainGetLogFilePositionArgs args;
> - struct virLogManagerProtocolDomainGetLogFilePositionRet ret;
> -
> - memset(&args, 0, sizeof(args));
> - memset(&ret, 0, sizeof(ret));
> + struct virLogManagerProtocolDomainGetLogFilePositionArgs args = { 0 };
> + struct virLogManagerProtocolDomainGetLogFilePositionRet ret = { 0 };
>
> args.path = (char *)path;
> args.flags = flags;
> @@ -241,11 +235,8 @@ virLogManagerDomainReadLogFile(virLogManager *mgr,
> size_t maxlen,
> unsigned int flags)
> {
> - struct virLogManagerProtocolDomainReadLogFileArgs args;
> - struct virLogManagerProtocolDomainReadLogFileRet ret;
> -
> - memset(&args, 0, sizeof(args));
> - memset(&ret, 0, sizeof(ret));
> + struct virLogManagerProtocolDomainReadLogFileArgs args = { 0 };
> + struct virLogManagerProtocolDomainReadLogFileRet ret = { 0 };
>
> args.path = (char *)path;
> args.flags = flags;
> @@ -275,11 +266,9 @@ virLogManagerDomainAppendMessage(virLogManager *mgr,
> const char *message,
> unsigned int flags)
> {
> - struct virLogManagerProtocolDomainAppendLogFileArgs args;
> + struct virLogManagerProtocolDomainAppendLogFileArgs args = { 0 };
> struct virLogManagerProtocolDomainAppendLogFileRet ret;
>
> - memset(&args, 0, sizeof(args));
> -
> args.driver = (char *)driver;
> memcpy(args.dom.uuid, domuuid, VIR_UUID_BUFLEN);
> args.dom.name = (char *)domname;
> diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
> index 86dcd880e8..51459b47e7 100644
> --- a/src/lxc/lxc_controller.c
> +++ b/src/lxc/lxc_controller.c
> @@ -2235,10 +2235,9 @@ static int
> virLXCControllerEventSendExit(virLXCController *ctrl,
> int exitstatus)
> {
> - virLXCMonitorExitEventMsg msg;
> + virLXCMonitorExitEventMsg msg = { 0 };
>
> VIR_DEBUG("Exit status %d (client=%p)", exitstatus, ctrl->client);
> - memset(&msg, 0, sizeof(msg));
> switch (exitstatus) {
> case 0:
> msg.status = VIR_LXC_MONITOR_EXIT_STATUS_SHUTDOWN;
> @@ -2272,10 +2271,9 @@ static int
> virLXCControllerEventSendInit(virLXCController *ctrl,
> pid_t initpid)
> {
> - virLXCMonitorInitEventMsg msg;
> + virLXCMonitorInitEventMsg msg = { 0 };
>
> VIR_DEBUG("Init pid %lld", (long long)initpid);
> - memset(&msg, 0, sizeof(msg));
> msg.initpid = initpid;
>
> virLXCControllerEventSend(ctrl,
> diff --git a/src/lxc/lxc_domain.c b/src/lxc/lxc_domain.c
> index e8c87423bf..cf9bf96a4e 100644
> --- a/src/lxc/lxc_domain.c
> +++ b/src/lxc/lxc_domain.c
> @@ -339,13 +339,11 @@ virLXCDomainSetRunlevel(virDomainObj *vm,
> int runlevel)
> {
> virLXCDomainObjPrivate *priv = vm->privateData;
> - lxcDomainInitctlCallbackData data;
> + lxcDomainInitctlCallbackData data = { 0 };
> size_t nfifos = 0;
> size_t i;
> int ret = -1;
>
> - memset(&data, 0, sizeof(data));
> -
> data.runlevel = runlevel;
>
> for (nfifos = 0; virInitctlFifos[nfifos]; nfifos++)
> diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
> index 3bc01cbc23..f284798f1c 100644
> --- a/src/lxc/lxc_driver.c
> +++ b/src/lxc/lxc_driver.c
> @@ -3327,9 +3327,7 @@ lxcDomainAttachDeviceMknod(virLXCDriver *driver,
> char *file)
> {
> virLXCDomainObjPrivate *priv = vm->privateData;
> - struct lxcDomainAttachDeviceMknodData data;
> -
> - memset(&data, 0, sizeof(data));
> + struct lxcDomainAttachDeviceMknodData data = { 0 };
>
> data.driver = driver;
> data.mode = mode;
> diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c
> index 3dc0b777e9..2f89923856 100644
> --- a/src/nwfilter/nwfilter_dhcpsnoop.c
> +++ b/src/nwfilter/nwfilter_dhcpsnoop.c
> @@ -817,7 +817,7 @@ virNWFilterSnoopDHCPDecode(virNWFilterSnoopReq *req,
> struct iphdr *pip;
> struct udphdr *pup;
> virNWFilterSnoopDHCPHdr *pd;
> - virNWFilterSnoopIPLease ipl;
> + virNWFilterSnoopIPLease ipl = { 0 };
> uint8_t mtype;
> uint32_t leasetime;
> uint32_t nwint;
> @@ -863,8 +863,6 @@ virNWFilterSnoopDHCPDecode(virNWFilterSnoopReq *req,
> if (virNWFilterSnoopDHCPGetOpt(pd, len, &mtype, &leasetime) < 0)
> return -2;
>
> - memset(&ipl, 0, sizeof(ipl));
> -
> memcpy(&nwint, &pd->d_yiaddr, sizeof(nwint));
> virSocketAddrSetIPv4AddrNetOrder(&ipl.ipAddress, nwint);
>
> diff --git a/src/nwfilter/nwfilter_gentech_driver.c b/src/nwfilter/nwfilter_gentech_driver.c
> index 72e24e2f08..41f270bb7c 100644
> --- a/src/nwfilter/nwfilter_gentech_driver.c
> +++ b/src/nwfilter/nwfilter_gentech_driver.c
> @@ -463,7 +463,7 @@ virNWFilterDoInstantiate(virNWFilterTechDriver *techdriver,
> bool forceWithPendingReq)
> {
> int rc;
> - virNWFilterInst inst;
> + virNWFilterInst inst = { 0 };
> bool instantiate = true;
> g_autofree char *buf = NULL;
> virNWFilterVarValue *lv;
> @@ -471,8 +471,6 @@ virNWFilterDoInstantiate(virNWFilterTechDriver *techdriver,
> bool reportIP = false;
> g_autoptr(GHashTable) missing_vars = virHashNew(virNWFilterVarValueHashFree);
>
> - memset(&inst, 0, sizeof(inst));
> -
> rc = virNWFilterDetermineMissingVarsRec(filter,
> binding->filterparams,
> missing_vars,
> diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
> index eda1308097..7fc412c17e 100644
> --- a/src/qemu/qemu_agent.c
> +++ b/src/qemu/qemu_agent.c
> @@ -149,7 +149,7 @@ static void qemuAgentDispose(void *obj)
> static int
> qemuAgentOpenUnix(const char *socketpath)
> {
> - struct sockaddr_un addr;
> + struct sockaddr_un addr = { 0 };
> int agentfd;
>
> if ((agentfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
> @@ -165,7 +165,6 @@ qemuAgentOpenUnix(const char *socketpath)
> goto error;
> }
>
> - memset(&addr, 0, sizeof(addr));
> addr.sun_family = AF_UNIX;
> if (virStrcpyStatic(addr.sun_path, socketpath) < 0) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> @@ -803,11 +802,9 @@ qemuAgentGuestSyncSend(qemuAgent *agent,
> g_autofree char *txMsg = NULL;
> g_autoptr(virJSONValue) rxObj = NULL;
> unsigned long long id;
> - qemuAgentMessage sync_msg;
> + qemuAgentMessage sync_msg = { 0 };
> int rc;
>
> - memset(&sync_msg, 0, sizeof(sync_msg));
> -
> if (virTimeMillisNow(&id) < 0)
> return -1;
>
> @@ -1015,12 +1012,11 @@ qemuAgentCommandFull(qemuAgent *agent,
> bool report_unsupported)
> {
> int ret = -1;
> - qemuAgentMessage msg;
> + qemuAgentMessage msg = { 0 };
> g_autofree char *cmdstr = NULL;
> int await_event = agent->await_event;
>
> *reply = NULL;
> - memset(&msg, 0, sizeof(msg));
>
> if (!agent->running) {
> virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 64af0b5ea9..77c5335bde 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -4868,7 +4868,7 @@ qemuBuildSCSIHostdevDevProps(const virDomainDef *def,
> int
> qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev)
> {
> - struct sockaddr_un addr;
> + struct sockaddr_un addr = { 0 };
> socklen_t addrlen = sizeof(addr);
> int fd;
>
> @@ -4878,7 +4878,6 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev)
> goto error;
> }
>
> - memset(&addr, 0, sizeof(addr));
> addr.sun_family = AF_UNIX;
> if (virStrcpyStatic(addr.sun_path, dev->data.nix.path) < 0) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 1f388306f4..f8039160f4 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -14933,8 +14933,8 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
> qemuDomainObjPrivate *priv;
> virDomainDef *def = NULL;
> virDomainDef *persistentDef = NULL;
> - virDomainBlockIoTuneInfo info;
> - virDomainBlockIoTuneInfo conf_info;
> + virDomainBlockIoTuneInfo info = { 0 };
> + virDomainBlockIoTuneInfo conf_info = { 0 };
> int ret = -1;
> size_t i;
> virDomainDiskDef *conf_disk = NULL;
> @@ -14995,9 +14995,6 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
> NULL) < 0)
> return -1;
>
> - memset(&info, 0, sizeof(info));
> - memset(&conf_info, 0, sizeof(conf_info));
> -
> if (!(vm = qemuDomainObjFromDomain(dom)))
> return -1;
>
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index c680c4b804..db34b6c179 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -227,7 +227,7 @@ qemuMonitorDispose(void *obj)
> static int
> qemuMonitorOpenUnix(const char *monitor)
> {
> - struct sockaddr_un addr;
> + struct sockaddr_un addr = { 0 };
> VIR_AUTOCLOSE monfd = -1;
> int ret = -1;
>
> @@ -237,7 +237,6 @@ qemuMonitorOpenUnix(const char *monitor)
> return -1;
> }
>
> - memset(&addr, 0, sizeof(addr));
> addr.sun_family = AF_UNIX;
> if (virStrcpyStatic(addr.sun_path, monitor) < 0) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> @@ -309,13 +308,12 @@ qemuMonitorIOWriteWithFD(qemuMonitor *mon,
> size_t len,
> int fd)
> {
> - struct msghdr msg;
> + struct msghdr msg = { 0 };
> struct iovec iov[1];
> int ret;
> char control[CMSG_SPACE(sizeof(int))];
> struct cmsghdr *cmsg;
>
> - memset(&msg, 0, sizeof(msg));
> memset(control, 0, sizeof(control));
>
> iov[0].iov_base = (void *)data;
> diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
> index d9e9a4481c..70536028ab 100644
> --- a/src/qemu/qemu_monitor_json.c
> +++ b/src/qemu/qemu_monitor_json.c
> @@ -259,13 +259,11 @@ qemuMonitorJSONCommandWithFd(qemuMonitor *mon,
> virJSONValue **reply)
> {
> int ret = -1;
> - qemuMonitorMessage msg;
> + qemuMonitorMessage msg = { 0 };
> g_auto(virBuffer) cmdbuf = VIR_BUFFER_INITIALIZER;
>
> *reply = NULL;
>
> - memset(&msg, 0, sizeof(msg));
> -
> if (virJSONValueObjectHasKey(cmd, "execute")) {
> g_autofree char *id = qemuMonitorNextCommandID(mon);
>
> @@ -2035,10 +2033,9 @@ qemuMonitorJSONSetMemoryStatsPeriod(qemuMonitor *mon,
> char *balloonpath,
> int period)
> {
> - qemuMonitorJSONObjectProperty prop;
> + qemuMonitorJSONObjectProperty prop = { 0 };
>
> /* Set to the value in memballoon (could enable or disable) */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_INT;
> prop.val.iv = period;
> if (qemuMonitorJSONSetObjectProperty(mon, balloonpath,
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index db06991450..572b842349 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -2226,14 +2226,13 @@ qemuRefreshRTC(virDomainObj *vm)
> {
> qemuDomainObjPrivate *priv = vm->privateData;
> time_t now, then;
> - struct tm thenbits;
> + struct tm thenbits = { 0 };
> long localOffset;
> int rv;
>
> if (vm->def->clock.offset != VIR_DOMAIN_CLOCK_OFFSET_VARIABLE)
> return;
>
> - memset(&thenbits, 0, sizeof(thenbits));
> qemuDomainObjEnterMonitor(vm);
> now = time(NULL);
> rv = qemuMonitorGetRTCTime(priv->mon, &thenbits);
> diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
> index 7144e9e7ca..2bb9e306a4 100644
> --- a/src/remote/remote_daemon_dispatch.c
> +++ b/src/remote/remote_daemon_dispatch.c
> @@ -313,7 +313,7 @@ remoteRelayDomainEventLifecycle(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_lifecycle_msg data;
> + remote_domain_event_lifecycle_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -323,7 +323,6 @@ remoteRelayDomainEventLifecycle(virConnectPtr conn,
> event, detail, callback->callbackID, callback->legacy);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
> data.event = event;
> data.detail = detail;
> @@ -352,7 +351,7 @@ remoteRelayDomainEventReboot(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_reboot_msg data;
> + remote_domain_event_reboot_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -362,7 +361,6 @@ remoteRelayDomainEventReboot(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID, callback->legacy);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
>
> if (callback->legacy) {
> @@ -389,7 +387,7 @@ remoteRelayDomainEventRTCChange(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_rtc_change_msg data;
> + remote_domain_event_rtc_change_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -400,7 +398,6 @@ remoteRelayDomainEventRTCChange(virConnectPtr conn,
> callback->callbackID, callback->legacy);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
> data.offset = offset;
>
> @@ -428,7 +425,7 @@ remoteRelayDomainEventWatchdog(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_watchdog_msg data;
> + remote_domain_event_watchdog_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -438,7 +435,6 @@ remoteRelayDomainEventWatchdog(virConnectPtr conn,
> dom->name, dom->id, action, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
> data.action = action;
>
> @@ -468,7 +464,7 @@ remoteRelayDomainEventIOError(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_io_error_msg data;
> + remote_domain_event_io_error_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -479,7 +475,6 @@ remoteRelayDomainEventIOError(virConnectPtr conn,
> callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.srcPath = g_strdup(srcPath);
> data.devAlias = g_strdup(devAlias);
> make_nonnull_domain(&data.dom, dom);
> @@ -512,7 +507,7 @@ remoteRelayDomainEventIOErrorReason(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_io_error_reason_msg data;
> + remote_domain_event_io_error_reason_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -523,7 +518,6 @@ remoteRelayDomainEventIOErrorReason(virConnectPtr conn,
> callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.srcPath = g_strdup(srcPath);
> data.devAlias = g_strdup(devAlias);
> data.reason = g_strdup(reason);
> @@ -558,7 +552,7 @@ remoteRelayDomainEventGraphics(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_graphics_msg data;
> + remote_domain_event_graphics_msg data = { 0 };
> size_t i;
>
> if (callback->callbackID < 0 ||
> @@ -576,7 +570,6 @@ remoteRelayDomainEventGraphics(virConnectPtr conn,
> VIR_DEBUG(" %s=%s", subject->identities[i].type, subject->identities[i].name);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.phase = phase;
> data.local.family = local->family;
> data.remote.family = remote->family;
> @@ -625,7 +618,7 @@ remoteRelayDomainEventBlockJob(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_block_job_msg data;
> + remote_domain_event_block_job_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -635,7 +628,6 @@ remoteRelayDomainEventBlockJob(virConnectPtr conn,
> dom->name, dom->id, path, type, status, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.path = g_strdup(path);
> data.type = type;
> data.status = status;
> @@ -664,7 +656,7 @@ remoteRelayDomainEventControlError(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_control_error_msg data;
> + remote_domain_event_control_error_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -674,7 +666,6 @@ remoteRelayDomainEventControlError(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
>
> if (callback->legacy) {
> @@ -704,7 +695,7 @@ remoteRelayDomainEventDiskChange(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_disk_change_msg data;
> + remote_domain_event_disk_change_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -715,7 +706,6 @@ remoteRelayDomainEventDiskChange(virConnectPtr conn,
> callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> if (oldSrcPath) {
> data.oldSrcPath = g_new0(remote_nonnull_string, 1);
> *(data.oldSrcPath) = g_strdup(oldSrcPath);
> @@ -755,7 +745,7 @@ remoteRelayDomainEventTrayChange(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_tray_change_msg data;
> + remote_domain_event_tray_change_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -765,8 +755,6 @@ remoteRelayDomainEventTrayChange(virConnectPtr conn,
> dom->name, dom->id, devAlias, reason, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> data.devAlias = g_strdup(devAlias);
> data.reason = reason;
> make_nonnull_domain(&data.dom, dom);
> @@ -794,7 +782,7 @@ remoteRelayDomainEventPMWakeup(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_pmwakeup_msg data;
> + remote_domain_event_pmwakeup_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -804,7 +792,6 @@ remoteRelayDomainEventPMWakeup(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
>
> if (callback->legacy) {
> @@ -830,7 +817,7 @@ remoteRelayDomainEventPMSuspend(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_pmsuspend_msg data;
> + remote_domain_event_pmsuspend_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -840,7 +827,6 @@ remoteRelayDomainEventPMSuspend(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
>
> if (callback->legacy) {
> @@ -866,7 +852,7 @@ remoteRelayDomainEventBalloonChange(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_balloon_change_msg data;
> + remote_domain_event_balloon_change_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -876,7 +862,6 @@ remoteRelayDomainEventBalloonChange(virConnectPtr conn,
> dom->name, dom->id, actual, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
> data.actual = actual;
>
> @@ -904,7 +889,7 @@ remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_pmsuspend_disk_msg data;
> + remote_domain_event_pmsuspend_disk_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -914,7 +899,6 @@ remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_domain(&data.dom, dom);
>
> if (callback->legacy) {
> @@ -940,7 +924,7 @@ remoteRelayDomainEventDeviceRemoved(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_device_removed_msg data;
> + remote_domain_event_device_removed_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -950,8 +934,6 @@ remoteRelayDomainEventDeviceRemoved(virConnectPtr conn,
> dom->name, dom->id, devAlias, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> data.devAlias = g_strdup(devAlias);
>
> make_nonnull_domain(&data.dom, dom);
> @@ -984,7 +966,7 @@ remoteRelayDomainEventBlockJob2(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_block_job_2_msg data;
> + remote_domain_event_block_job_2_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -994,7 +976,6 @@ remoteRelayDomainEventBlockJob2(virConnectPtr conn,
> dom->name, dom->id, dst, type, status, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> data.dst = g_strdup(dst);
> data.type = type;
> @@ -1017,7 +998,7 @@ remoteRelayDomainEventTunable(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_tunable_msg data;
> + remote_domain_event_callback_tunable_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1027,8 +1008,6 @@ remoteRelayDomainEventTunable(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID, params, nparams);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> if (virTypedParamsSerialize(params, nparams,
> REMOTE_DOMAIN_EVENT_TUNABLE_MAX,
> (struct _virTypedParameterRemote **) &data.params.params_val,
> @@ -1057,7 +1036,7 @@ remoteRelayDomainEventAgentLifecycle(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_agent_lifecycle_msg data;
> + remote_domain_event_callback_agent_lifecycle_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1068,7 +1047,6 @@ remoteRelayDomainEventAgentLifecycle(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID, state, reason);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> make_nonnull_domain(&data.dom, dom);
> data.state = state;
> @@ -1090,7 +1068,7 @@ remoteRelayDomainEventDeviceAdded(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_device_added_msg data;
> + remote_domain_event_callback_device_added_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1100,8 +1078,6 @@ remoteRelayDomainEventDeviceAdded(virConnectPtr conn,
> dom->name, dom->id, devAlias, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> data.devAlias = g_strdup(devAlias);
> make_nonnull_domain(&data.dom, dom);
> data.callbackID = callback->callbackID;
> @@ -1122,7 +1098,7 @@ remoteRelayDomainEventMigrationIteration(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_migration_iteration_msg data;
> + remote_domain_event_callback_migration_iteration_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1133,7 +1109,6 @@ remoteRelayDomainEventMigrationIteration(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID, iteration);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> make_nonnull_domain(&data.dom, dom);
>
> @@ -1156,7 +1131,7 @@ remoteRelayDomainEventJobCompleted(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_job_completed_msg data;
> + remote_domain_event_callback_job_completed_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1167,8 +1142,6 @@ remoteRelayDomainEventJobCompleted(virConnectPtr conn,
> dom->name, dom->id, callback->callbackID, params, nparams);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> if (virTypedParamsSerialize(params, nparams,
> REMOTE_DOMAIN_JOB_STATS_MAX,
> (struct _virTypedParameterRemote **) &data.params.params_val,
> @@ -1194,7 +1167,7 @@ remoteRelayDomainEventDeviceRemovalFailed(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_device_removal_failed_msg data;
> + remote_domain_event_callback_device_removal_failed_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1204,8 +1177,6 @@ remoteRelayDomainEventDeviceRemovalFailed(virConnectPtr conn,
> dom->name, dom->id, devAlias, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> data.devAlias = g_strdup(devAlias);
>
> make_nonnull_domain(&data.dom, dom);
> @@ -1228,7 +1199,7 @@ remoteRelayDomainEventMetadataChange(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_callback_metadata_change_msg data;
> + remote_domain_event_callback_metadata_change_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1238,8 +1209,6 @@ remoteRelayDomainEventMetadataChange(virConnectPtr conn,
> dom->name, dom->id, type, NULLSTR(nsuri), callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> -
> data.type = type;
> if (nsuri) {
> data.nsuri = g_new0(remote_nonnull_string, 1);
> @@ -1268,7 +1237,7 @@ remoteRelayDomainEventBlockThreshold(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_block_threshold_msg data;
> + remote_domain_event_block_threshold_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> @@ -1278,7 +1247,6 @@ remoteRelayDomainEventBlockThreshold(virConnectPtr conn,
> dom->name, dom->id, dev, NULLSTR(path), threshold, excess, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> data.dev = g_strdup(dev);
> if (path) {
> @@ -1306,14 +1274,13 @@ remoteRelayDomainEventMemoryFailure(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_memory_failure_msg data;
> + remote_domain_event_memory_failure_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> return -1;
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> data.recipient = recipient;
> data.action = action;
> @@ -1336,14 +1303,13 @@ remoteRelayDomainEventMemoryDeviceSizeChange(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_domain_event_memory_device_size_change_msg data;
> + remote_domain_event_memory_device_size_change_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainEventCheckACL(callback->client, conn, dom))
> return -1;
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> data.alias = g_strdup(alias);
> data.size = size;
> @@ -1397,7 +1363,7 @@ remoteRelayNetworkEventLifecycle(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_network_event_lifecycle_msg data;
> + remote_network_event_lifecycle_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayNetworkEventCheckACL(callback->client, conn, net))
> @@ -1407,7 +1373,6 @@ remoteRelayNetworkEventLifecycle(virConnectPtr conn,
> event, detail, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_network(&data.net, net);
> data.callbackID = callback->callbackID;
> data.event = event;
> @@ -1434,7 +1399,7 @@ remoteRelayStoragePoolEventLifecycle(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_storage_pool_event_lifecycle_msg data;
> + remote_storage_pool_event_lifecycle_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayStoragePoolEventCheckACL(callback->client, conn, pool))
> @@ -1444,7 +1409,6 @@ remoteRelayStoragePoolEventLifecycle(virConnectPtr conn,
> event, detail, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_storage_pool(&data.pool, pool);
> data.callbackID = callback->callbackID;
> data.event = event;
> @@ -1464,7 +1428,7 @@ remoteRelayStoragePoolEventRefresh(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_storage_pool_event_refresh_msg data;
> + remote_storage_pool_event_refresh_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayStoragePoolEventCheckACL(callback->client, conn, pool))
> @@ -1474,7 +1438,6 @@ remoteRelayStoragePoolEventRefresh(virConnectPtr conn,
> callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_storage_pool(&data.pool, pool);
> data.callbackID = callback->callbackID;
>
> @@ -1501,7 +1464,7 @@ remoteRelayNodeDeviceEventLifecycle(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_node_device_event_lifecycle_msg data;
> + remote_node_device_event_lifecycle_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayNodeDeviceEventCheckACL(callback->client, conn, dev))
> @@ -1511,7 +1474,6 @@ remoteRelayNodeDeviceEventLifecycle(virConnectPtr conn,
> event, detail, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_node_device(&data.dev, dev);
> data.callbackID = callback->callbackID;
> data.event = event;
> @@ -1531,7 +1493,7 @@ remoteRelayNodeDeviceEventUpdate(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_node_device_event_update_msg data;
> + remote_node_device_event_update_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayNodeDeviceEventCheckACL(callback->client, conn, dev))
> @@ -1541,7 +1503,6 @@ remoteRelayNodeDeviceEventUpdate(virConnectPtr conn,
> callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_node_device(&data.dev, dev);
> data.callbackID = callback->callbackID;
>
> @@ -1568,7 +1529,7 @@ remoteRelaySecretEventLifecycle(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_secret_event_lifecycle_msg data;
> + remote_secret_event_lifecycle_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelaySecretEventCheckACL(callback->client, conn, secret))
> @@ -1578,7 +1539,6 @@ remoteRelaySecretEventLifecycle(virConnectPtr conn,
> event, detail, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_secret(&data.secret, secret);
> data.callbackID = callback->callbackID;
> data.event = event;
> @@ -1598,7 +1558,7 @@ remoteRelaySecretEventValueChanged(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - remote_secret_event_value_changed_msg data;
> + remote_secret_event_value_changed_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelaySecretEventCheckACL(callback->client, conn, secret))
> @@ -1608,7 +1568,6 @@ remoteRelaySecretEventValueChanged(virConnectPtr conn,
> callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> make_nonnull_secret(&data.secret, secret);
> data.callbackID = callback->callbackID;
>
> @@ -1637,7 +1596,7 @@ remoteRelayDomainQemuMonitorEvent(virConnectPtr conn,
> void *opaque)
> {
> daemonClientEventCallback *callback = opaque;
> - qemu_domain_monitor_event_msg data;
> + qemu_domain_monitor_event_msg data = { 0 };
>
> if (callback->callbackID < 0 ||
> !remoteRelayDomainQemuMonitorEventCheckACL(callback->client, conn,
> @@ -1648,7 +1607,6 @@ remoteRelayDomainQemuMonitorEvent(virConnectPtr conn,
> event, details, callback->callbackID);
>
> /* build return data */
> - memset(&data, 0, sizeof(data));
> data.callbackID = callback->callbackID;
> data.event = g_strdup(event);
> data.seconds = seconds;
> @@ -2677,14 +2635,13 @@ remoteDispatchNodeGetSecurityModel(virNetServer *server G_GNUC_UNUSED,
> struct virNetMessageError *rerr,
> remote_node_get_security_model_ret *ret)
> {
> - virSecurityModel secmodel;
> + virSecurityModel secmodel = { 0 };
> int rv = -1;
> virConnectPtr conn = remoteGetHypervisorConn(client);
>
> if (!conn)
> goto cleanup;
>
> - memset(&secmodel, 0, sizeof(secmodel));
> if (virNodeGetSecurityModel(conn, &secmodel) < 0)
> goto cleanup;
>
> diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_stream.c
> index f52af790c1..1a89ff822c 100644
> --- a/src/remote/remote_daemon_stream.c
> +++ b/src/remote/remote_daemon_stream.c
> @@ -226,12 +226,11 @@ daemonStreamEvent(virStreamPtr st, int events, void *opaque)
> (events & (VIR_STREAM_EVENT_ERROR | VIR_STREAM_EVENT_HANGUP))) {
> int ret;
> virNetMessage *msg;
> - virNetMessageError rerr;
> + virNetMessageError rerr = { 0 };
> virErrorPtr origErr;
>
> virErrorPreserveLast(&origErr);
>
> - memset(&rerr, 0, sizeof(rerr));
> stream->closed = true;
> virStreamEventRemoveCallback(stream->st);
> virStreamAbort(stream->st);
> @@ -565,13 +564,11 @@ daemonStreamHandleWriteData(virNetServerClient *client,
> /* Blocking, so indicate we have more todo later */
> return 1;
> } else if (ret < 0) {
> - virNetMessageError rerr;
> + virNetMessageError rerr = { 0 };
> virErrorPtr err;
>
> virErrorPreserveLast(&err);
>
> - memset(&rerr, 0, sizeof(rerr));
> -
> VIR_INFO("Stream send failed");
> stream->closed = true;
> virStreamEventRemoveCallback(stream->st);
> @@ -613,8 +610,8 @@ daemonStreamHandleFinish(virNetServerClient *client,
> ret = virStreamFinish(stream->st);
>
> if (ret < 0) {
> - virNetMessageError rerr;
> - memset(&rerr, 0, sizeof(rerr));
> + virNetMessageError rerr = { 0 };
> +
> return virNetServerProgramSendReplyError(stream->prog,
> client,
> msg,
> @@ -663,8 +660,8 @@ daemonStreamHandleAbort(virNetServerClient *client,
> }
>
> if (raise_error) {
> - virNetMessageError rerr;
> - memset(&rerr, 0, sizeof(rerr));
> + virNetMessageError rerr = { 0 };
> +
> return virNetServerProgramSendReplyError(stream->prog,
> client,
> msg,
> @@ -709,9 +706,7 @@ daemonStreamHandleHole(virNetServerClient *client,
> ret = virStreamSendHole(stream->st, data.length, data.flags);
>
> if (ret < 0) {
> - virNetMessageError rerr;
> -
> - memset(&rerr, 0, sizeof(rerr));
> + virNetMessageError rerr = { 0 };
>
> VIR_INFO("Stream send hole failed");
> stream->closed = true;
> @@ -825,7 +820,7 @@ daemonStreamHandleRead(virNetServerClient *client,
> daemonClientStream *stream)
> {
> virNetMessage *msg = NULL;
> - virNetMessageError rerr;
> + virNetMessageError rerr = { 0 };
> char *buffer;
> size_t bufferLen = VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX;
> int ret = -1;
> @@ -848,8 +843,6 @@ daemonStreamHandleRead(virNetServerClient *client,
> if (!stream->tx)
> return 0;
>
> - memset(&rerr, 0, sizeof(rerr));
> -
> buffer = g_new0(char, bufferLen);
>
> if (!(msg = virNetMessageNew(false)))
> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> index 7ccf550dff..8e78af0ea0 100644
> --- a/src/remote/remote_driver.c
> +++ b/src/remote/remote_driver.c
> @@ -1184,10 +1184,9 @@ doRemoteOpen(virConnectPtr conn,
>
> /* Now try and find out what URI the daemon used */
> if (conn->uri == NULL) {
> - remote_connect_get_uri_ret uriret;
> + remote_connect_get_uri_ret uriret = { 0 };
>
> VIR_DEBUG("Trying to query remote URI");
> - memset(&uriret, 0, sizeof(uriret));
> if (call(conn, priv, 0,
> REMOTE_PROC_CONNECT_GET_URI,
> (xdrproc_t) xdr_void, (char *) NULL,
> @@ -3725,9 +3724,9 @@ static int
> remoteAuthSASL(virConnectPtr conn, struct private_data *priv,
> virConnectAuthPtr auth, const char *wantmech)
> {
> - remote_auth_sasl_init_ret iret;
> + remote_auth_sasl_init_ret iret = { 0 };
> remote_auth_sasl_start_args sargs = {0};
> - remote_auth_sasl_start_ret sret;
> + remote_auth_sasl_start_ret sret = { 0 };
> const char *clientout;
> char *serverin = NULL;
> size_t clientoutlen, serverinlen;
> @@ -3739,9 +3738,7 @@ remoteAuthSASL(virConnectPtr conn, struct private_data *priv,
> const char *mechlist;
> virNetSASLContext *saslCtxt;
> virNetSASLSession *sasl = NULL;
> - struct remoteAuthInteractState state;
> -
> - memset(&state, 0, sizeof(state));
> + struct remoteAuthInteractState state = { 0 };
>
> VIR_DEBUG("Client initialize SASL authentication");
>
> @@ -3787,7 +3784,6 @@ remoteAuthSASL(virConnectPtr conn, struct private_data *priv,
> goto cleanup;
>
> /* First call is to inquire about supported mechanisms in the server */
> - memset(&iret, 0, sizeof(iret));
> if (call(conn, priv, 0, REMOTE_PROC_AUTH_SASL_INIT,
> (xdrproc_t) xdr_void, (char *)NULL,
> (xdrproc_t) xdr_remote_auth_sasl_init_ret, (char *) &iret) != 0)
> @@ -3841,7 +3837,6 @@ remoteAuthSASL(virConnectPtr conn, struct private_data *priv,
> mech, clientoutlen, clientout);
>
> /* Now send the initial auth data to the server */
> - memset(&sret, 0, sizeof(sret));
> if (call(conn, priv, 0, REMOTE_PROC_AUTH_SASL_START,
> (xdrproc_t) xdr_remote_auth_sasl_start_args, (char *) &sargs,
> (xdrproc_t) xdr_remote_auth_sasl_start_ret, (char *) &sret) != 0)
> diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c
> index abc8e6798a..31eee72fc8 100644
> --- a/src/rpc/virnetclientprogram.c
> +++ b/src/rpc/virnetclientprogram.c
> @@ -116,11 +116,9 @@ static int
> virNetClientProgramDispatchError(virNetClientProgram *prog G_GNUC_UNUSED,
> virNetMessage *msg)
> {
> - virNetMessageError err;
> + virNetMessageError err = { 0 };
> int ret = -1;
>
> - memset(&err, 0, sizeof(err));
> -
> if (virNetMessageDecodePayload(msg, (xdrproc_t)xdr_virNetMessageError, &err) < 0)
> goto cleanup;
>
> diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c
> index 21e9332134..98034d737d 100644
> --- a/src/rpc/virnetclientstream.c
> +++ b/src/rpc/virnetclientstream.c
> @@ -261,7 +261,7 @@ void virNetClientStreamSetClosed(virNetClientStream *st,
> int virNetClientStreamSetError(virNetClientStream *st,
> virNetMessage *msg)
> {
> - virNetMessageError err;
> + virNetMessageError err = { 0 };
> int ret = -1;
>
> virObjectLock(st);
> @@ -270,7 +270,6 @@ int virNetClientStreamSetError(virNetClientStream *st,
> VIR_DEBUG("Overwriting existing stream error %s", NULLSTR(st->err.message));
>
> virResetError(&st->err);
> - memset(&err, 0, sizeof(err));
>
> if (virNetMessageDecodePayload(msg, (xdrproc_t)xdr_virNetMessageError, &err) < 0)
> goto cleanup;
> @@ -444,13 +443,12 @@ virNetClientStreamHandleHole(virNetClient *client,
> virNetClientStream *st)
> {
> virNetMessage *msg;
> - virNetStreamHole data;
> + virNetStreamHole data = { 0 };
> int ret = -1;
>
> VIR_DEBUG("client=%p st=%p", client, st);
>
> msg = st->rx;
> - memset(&data, 0, sizeof(data));
>
> /* We should not be called unless there's VIR_NET_STREAM_HOLE
> * message at the head of the list. But doesn't hurt to check */
> @@ -634,7 +632,7 @@ virNetClientStreamSendHole(virNetClientStream *st,
> unsigned int flags)
> {
> virNetMessage *msg = NULL;
> - virNetStreamHole data;
> + virNetStreamHole data = { 0 };
> int ret = -1;
>
> VIR_DEBUG("st=%p length=%llu", st, length);
> @@ -645,7 +643,6 @@ virNetClientStreamSendHole(virNetClientStream *st,
> return -1;
> }
>
> - memset(&data, 0, sizeof(data));
> data.length = length;
> data.flags = flags;
>
> diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
> index d37984d207..9795418126 100644
> --- a/src/rpc/virnetdaemon.c
> +++ b/src/rpc/virnetdaemon.c
> @@ -692,7 +692,7 @@ virNetDaemonAddSignalHandler(virNetDaemon *dmn,
> void *opaque)
> {
> g_autofree virNetDaemonSignal *sigdata = NULL;
> - struct sigaction sig_action;
> + struct sigaction sig_action = { 0 };
> VIR_LOCK_GUARD lock = virObjectLockGuard(dmn);
>
> if (virNetDaemonSignalSetup(dmn) < 0)
> @@ -706,7 +706,6 @@ virNetDaemonAddSignalHandler(virNetDaemon *dmn,
> sigdata->func = func;
> sigdata->opaque = opaque;
>
> - memset(&sig_action, 0, sizeof(sig_action));
> sig_action.sa_sigaction = virNetDaemonSignalHandler;
> sig_action.sa_flags = SA_SIGINFO;
> sigemptyset(&sig_action.sa_mask);
> diff --git a/src/rpc/virnetsaslcontext.c b/src/rpc/virnetsaslcontext.c
> index 7151225cc3..8692703117 100644
> --- a/src/rpc/virnetsaslcontext.c
> +++ b/src/rpc/virnetsaslcontext.c
> @@ -331,7 +331,7 @@ int virNetSASLSessionSecProps(virNetSASLSession *sasl,
> int maxSSF,
> bool allowAnonymous)
> {
> - sasl_security_properties_t secprops;
> + sasl_security_properties_t secprops = { 0 };
> int err;
> int ret = -1;
>
> @@ -339,7 +339,6 @@ int virNetSASLSessionSecProps(virNetSASLSession *sasl,
> minSSF, maxSSF, allowAnonymous, sasl->maxbufsize);
>
> virObjectLock(sasl);
> - memset(&secprops, 0, sizeof(secprops));
>
> secprops.min_ssf = minSSF;
> secprops.max_ssf = maxSSF;
> diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c
> index 2cce188a09..b1236bf49b 100644
> --- a/src/rpc/virnetserverprogram.c
> +++ b/src/rpc/virnetserverprogram.c
> @@ -229,12 +229,11 @@ int virNetServerProgramUnknownError(virNetServerClient *client,
> virNetMessage *msg,
> struct virNetMessageHeader *req)
> {
> - virNetMessageError rerr;
> + virNetMessageError rerr = { 0 };
>
> virReportError(VIR_ERR_RPC,
> _("Cannot find program %1$d version %2$d"), req->prog, req->vers);
>
> - memset(&rerr, 0, sizeof(rerr));
> return virNetServerProgramSendError(req->prog,
> req->vers,
> client,
> @@ -273,9 +272,7 @@ int virNetServerProgramDispatch(virNetServerProgram *prog,
> virNetMessage *msg)
> {
> int ret = -1;
> - virNetMessageError rerr;
> -
> - memset(&rerr, 0, sizeof(rerr));
> + virNetMessageError rerr = { 0 };
>
> VIR_DEBUG("prog=%d ver=%d type=%d status=%d serial=%u proc=%d",
> msg->header.prog, msg->header.vers, msg->header.type,
> @@ -369,12 +366,10 @@ virNetServerProgramDispatchCall(virNetServerProgram *prog,
> g_autofree char *ret = NULL;
> int rv = -1;
> virNetServerProgramProc *dispatcher = NULL;
> - virNetMessageError rerr;
> + virNetMessageError rerr = { 0 };
> size_t i;
> g_autoptr(virIdentity) identity = NULL;
>
> - memset(&rerr, 0, sizeof(rerr));
> -
> if (msg->header.status != VIR_NET_OK) {
> virReportError(VIR_ERR_RPC,
> _("Unexpected message status %1$u"),
> @@ -533,11 +528,10 @@ int virNetServerProgramSendStreamHole(virNetServerProgram *prog,
> long long length,
> unsigned int flags)
> {
> - virNetStreamHole data;
> + virNetStreamHole data = { 0 };
>
> VIR_DEBUG("client=%p msg=%p length=%lld", client, msg, length);
>
> - memset(&data, 0, sizeof(data));
> data.length = length;
> data.flags = flags;
>
> diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
> index 910fb8dd67..b58f7a6b8f 100644
> --- a/src/rpc/virnetsocket.c
> +++ b/src/rpc/virnetsocket.c
> @@ -143,11 +143,10 @@ virNetSocketCheckProtocolByLookup(const char *address,
> int family,
> bool *hasFamily)
> {
> - struct addrinfo hints;
> + struct addrinfo hints = { 0 };
> struct addrinfo *ai = NULL;
> int gaierr;
>
> - memset(&hints, 0, sizeof(hints));
> hints.ai_family = family;
> hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
> hints.ai_socktype = SOCK_STREAM;
> @@ -313,7 +312,7 @@ int virNetSocketNewListenTCP(const char *nodename,
> virNetSocket **socks = NULL;
> size_t nsocks = 0;
> struct addrinfo *ai = NULL;
> - struct addrinfo hints;
> + struct addrinfo hints = { 0 };
> int fd = -1;
> size_t i;
> int socketErrno = 0;
> @@ -326,7 +325,6 @@ int virNetSocketNewListenTCP(const char *nodename,
> *retsocks = NULL;
> *nretsocks = 0;
>
> - memset(&hints, 0, sizeof(hints));
> hints.ai_family = family;
> hints.ai_flags = AI_PASSIVE;
> hints.ai_socktype = SOCK_STREAM;
> @@ -353,9 +351,7 @@ int virNetSocketNewListenTCP(const char *nodename,
>
> runp = ai;
> while (runp) {
> - virSocketAddr addr;
> -
> - memset(&addr, 0, sizeof(addr));
> + virSocketAddr addr = { 0 };
>
> if ((fd = socket(runp->ai_family, runp->ai_socktype,
> runp->ai_protocol)) < 0) {
> @@ -477,14 +473,12 @@ int virNetSocketNewListenUNIX(const char *path,
> gid_t grp,
> virNetSocket **retsock)
> {
> - virSocketAddr addr;
> + virSocketAddr addr = { 0 };
> mode_t oldmask;
> int fd;
>
> *retsock = NULL;
>
> - memset(&addr, 0, sizeof(addr));
> -
> addr.len = sizeof(addr.data.un);
>
> if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
> @@ -553,11 +547,9 @@ int virNetSocketNewListenFD(int fd,
> bool unlinkUNIX,
> virNetSocket **retsock)
> {
> - virSocketAddr addr;
> + virSocketAddr addr = { 0 };
> *retsock = NULL;
>
> - memset(&addr, 0, sizeof(addr));
> -
> addr.len = sizeof(addr.data);
> if (getsockname(fd, &addr.data.sa, &addr.len) < 0) {
> virReportSystemError(errno, "%s", _("Unable to get local socket name"));
> @@ -577,20 +569,16 @@ int virNetSocketNewConnectTCP(const char *nodename,
> virNetSocket **retsock)
> {
> struct addrinfo *ai = NULL;
> - struct addrinfo hints;
> + struct addrinfo hints = { 0 };
> int fd = -1;
> - virSocketAddr localAddr;
> - virSocketAddr remoteAddr;
> + virSocketAddr localAddr = { 0 };
> + virSocketAddr remoteAddr = { 0 };
> struct addrinfo *runp;
> int savedErrno = ENOENT;
> int e;
>
> *retsock = NULL;
>
> - memset(&localAddr, 0, sizeof(localAddr));
> - memset(&remoteAddr, 0, sizeof(remoteAddr));
> -
> - memset(&hints, 0, sizeof(hints));
> hints.ai_family = family;
> hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG | AI_V4MAPPED;
> hints.ai_socktype = SOCK_STREAM;
> @@ -666,17 +654,14 @@ int virNetSocketNewConnectUNIX(const char *path,
> VIR_AUTOCLOSE lockfd = -1;
> int fd = -1;
> int retries = 500;
> - virSocketAddr localAddr;
> - virSocketAddr remoteAddr;
> + virSocketAddr localAddr = { 0 };
> + virSocketAddr remoteAddr = { 0 };
> g_autofree char *rundir = NULL;
> int ret = -1;
> bool daemonLaunched = false;
>
> VIR_DEBUG("path=%s spawnDaemonPath=%s", path, NULLSTR(spawnDaemonPath));
>
> - memset(&localAddr, 0, sizeof(localAddr));
> - memset(&remoteAddr, 0, sizeof(remoteAddr));
> -
> remoteAddr.len = sizeof(remoteAddr.data.un);
>
> if (spawnDaemonPath) {
> @@ -1168,8 +1153,8 @@ int virNetSocketNewConnectSockFD(int sockfd,
>
> virNetSocket *virNetSocketNewPostExecRestart(virJSONValue *object)
> {
> - virSocketAddr localAddr;
> - virSocketAddr remoteAddr;
> + virSocketAddr localAddr = { 0 };
> + virSocketAddr remoteAddr = { 0 };
> int fd, thepid, errfd;
> bool isClient;
> bool unlinkUNIX;
> @@ -1201,9 +1186,6 @@ virNetSocket *virNetSocketNewPostExecRestart(virJSONValue *object)
> if (virJSONValueObjectGetBoolean(object, "unlinkUNIX", &unlinkUNIX) < 0)
> unlinkUNIX = !isClient;
>
> - memset(&localAddr, 0, sizeof(localAddr));
> - memset(&remoteAddr, 0, sizeof(remoteAddr));
> -
> remoteAddr.len = sizeof(remoteAddr.data.stor);
> if (getsockname(fd, &remoteAddr.data.sa, &remoteAddr.len) < 0) {
> virReportSystemError(errno, "%s", _("Unable to get peer socket name"));
> @@ -2059,17 +2041,14 @@ int virNetSocketListen(virNetSocket *sock, int backlog)
> int virNetSocketAccept(virNetSocket *sock, virNetSocket **clientsock)
> {
> int fd = -1;
> - virSocketAddr localAddr;
> - virSocketAddr remoteAddr;
> + virSocketAddr localAddr = { 0 };
> + virSocketAddr remoteAddr = { 0 };
> int ret = -1;
>
> virObjectLock(sock);
>
> *clientsock = NULL;
>
> - memset(&localAddr, 0, sizeof(localAddr));
> - memset(&remoteAddr, 0, sizeof(remoteAddr));
> -
> remoteAddr.len = sizeof(remoteAddr.data.stor);
> if ((fd = accept(sock->fd, &remoteAddr.data.sa, &remoteAddr.len)) < 0) {
> if (errno == ECONNABORTED ||
> diff --git a/src/rpc/virnetsshsession.c b/src/rpc/virnetsshsession.c
> index 98be120a11..16d420467e 100644
> --- a/src/rpc/virnetsshsession.c
> +++ b/src/rpc/virnetsshsession.c
> @@ -559,7 +559,7 @@ static int
> virNetSSHAuthenticatePrivkey(virNetSSHSession *sess,
> virNetSSHAuthMethod *priv)
> {
> - virConnectCredential retr_passphrase;
> + virConnectCredential retr_passphrase = { 0 };
> size_t i;
> char *errmsg;
> int ret;
> @@ -594,7 +594,6 @@ virNetSSHAuthenticatePrivkey(virNetSSHSession *sess,
> return -1;
> }
>
> - memset(&retr_passphrase, 0, sizeof(virConnectCredential));
> retr_passphrase.type = -1;
>
> for (i = 0; i < sess->cred->ncredtype; i++) {
> diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
> index 60dc68cf4b..9462ac6790 100644
> --- a/src/storage/storage_backend_logical.c
> +++ b/src/storage/storage_backend_logical.c
> @@ -186,11 +186,9 @@ virStorageBackendLogicalParseVolExtents(virStorageVolDef *vol,
> */
> for (i = 0; i < nextents; i++) {
> g_autofree char *offset_str = NULL;
> - virStorageVolSourceExtent extent;
> + virStorageVolSourceExtent extent = { 0 };
> size_t j = (i * 2) + 1;
>
> - memset(&extent, 0, sizeof(extent));
> -
> offset_str = g_match_info_fetch(info, j + 1);
>
> if (virStrToLong_ull(offset_str, NULL, 10, &offset) < 0) {
> @@ -503,13 +501,12 @@ static char *
> virStorageBackendLogicalFindPoolSources(const char *srcSpec G_GNUC_UNUSED,
> unsigned int flags)
> {
> - virStoragePoolSourceList sourceList;
> + virStoragePoolSourceList sourceList = { 0 };
> size_t i;
> char *retval = NULL;
>
> virCheckFlags(0, NULL);
>
> - memset(&sourceList, 0, sizeof(sourceList));
> sourceList.type = VIR_STORAGE_POOL_LOGICAL;
>
> if (virStorageBackendLogicalGetPoolSources(&sourceList) < 0)
> @@ -549,13 +546,12 @@ static bool
> virStorageBackendLogicalMatchPoolSource(virStoragePoolObj *pool)
> {
> virStoragePoolDef *def = virStoragePoolObjGetDef(pool);
> - virStoragePoolSourceList sourceList;
> + virStoragePoolSourceList sourceList = { 0 };
> virStoragePoolSource *thisSource = NULL;
> size_t i, j;
> int matchcount = 0;
> bool ret = false;
>
> - memset(&sourceList, 0, sizeof(sourceList));
> sourceList.type = VIR_STORAGE_POOL_LOGICAL;
>
> if (virStorageBackendLogicalGetPoolSources(&sourceList) < 0)
> diff --git a/src/util/virarptable.c b/src/util/virarptable.c
> index 7f9fefc160..299dddd664 100644
> --- a/src/util/virarptable.c
> +++ b/src/util/virarptable.c
> @@ -111,13 +111,12 @@ virArpTableGet(void)
>
> if (tb[NDA_DST]) {
> g_autofree char *ipstr = NULL;
> - virSocketAddr virAddr;
> + virSocketAddr virAddr = { 0 };
>
> VIR_REALLOC_N(table->t, num + 1);
> table->n = num + 1;
>
> addr = RTA_DATA(tb[NDA_DST]);
> - memset(&virAddr, 0, sizeof(virAddr));
> virAddr.len = sizeof(virAddr.data.inet4);
> virAddr.data.inet4.sin_family = AF_INET;
> virAddr.data.inet4.sin_addr = *(struct in_addr *)addr;
> diff --git a/src/util/virauth.c b/src/util/virauth.c
> index bd676858ce..e7a5f7f010 100644
> --- a/src/util/virauth.c
> +++ b/src/util/virauth.c
> @@ -135,7 +135,7 @@ virAuthGetUsernamePath(const char *path,
> const char *hostname)
> {
> unsigned int ncred;
> - virConnectCredential cred;
> + virConnectCredential cred = { 0 };
> g_autofree char *prompt = NULL;
> char *ret = NULL;
>
> @@ -150,8 +150,6 @@ virAuthGetUsernamePath(const char *path,
> return NULL;
> }
>
> - memset(&cred, 0, sizeof(virConnectCredential));
> -
> if (defaultUsername != NULL) {
> prompt = g_strdup_printf(_("Enter username for %1$s [%2$s]"), hostname,
> defaultUsername);
> diff --git a/src/util/virbpf.c b/src/util/virbpf.c
> index 34abf6f9b4..78fa102b4d 100644
> --- a/src/util/virbpf.c
> +++ b/src/util/virbpf.c
> @@ -35,9 +35,7 @@ virBPFCreateMap(unsigned int mapType,
> unsigned int valSize,
> unsigned int maxEntries)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.map_type = mapType;
> attr.key_size = keySize;
> @@ -57,12 +55,10 @@ virBPFLoadProg(struct bpf_insn *insns,
> {
> g_autofree char *logbuf = NULL;
> int progfd = -1;
> - union bpf_attr attr;
> + union bpf_attr attr = { 0 };
>
> logbuf = g_new0(char, LOG_BUF_SIZE);
>
> - memset(&attr, 0, sizeof(attr));
> -
> attr.prog_type = progType;
> attr.insn_cnt = insnCnt;
> attr.insns = (uintptr_t)insns;
> @@ -85,9 +81,7 @@ virBPFAttachProg(int progfd,
> int targetfd,
> int attachType)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.target_fd = targetfd;
> attr.attach_bpf_fd = progfd;
> @@ -102,9 +96,7 @@ virBPFDetachProg(int progfd,
> int targetfd,
> int attachType)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.target_fd = targetfd;
> attr.attach_bpf_fd = progfd;
> @@ -121,11 +113,9 @@ virBPFQueryProg(int targetfd,
> unsigned int *progcnt,
> void *progids)
> {
> - union bpf_attr attr;
> + union bpf_attr attr = { 0 };
> int rc;
>
> - memset(&attr, 0, sizeof(attr));
> -
> attr.query.target_fd = targetfd;
> attr.query.attach_type = attachType;
> attr.query.prog_cnt = maxprogids;
> @@ -143,9 +133,7 @@ virBPFQueryProg(int targetfd,
> int
> virBPFGetProg(unsigned int id)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.prog_id = id;
>
> @@ -158,11 +146,9 @@ virBPFGetProgInfo(int progfd,
> struct bpf_prog_info *info,
> unsigned int **mapIDs)
> {
> - union bpf_attr attr;
> + union bpf_attr attr = { 0 };
> int rc;
>
> - memset(&attr, 0, sizeof(attr));
> -
> attr.info.bpf_fd = progfd;
> attr.info.info_len = sizeof(struct bpf_prog_info);
> attr.info.info = (uintptr_t)info;
> @@ -200,9 +186,7 @@ virBPFGetProgInfo(int progfd,
> int
> virBPFGetMap(unsigned int id)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.map_id = id;
>
> @@ -214,9 +198,7 @@ int
> virBPFGetMapInfo(int mapfd,
> struct bpf_map_info *info)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.info.bpf_fd = mapfd;
> attr.info.info_len = sizeof(struct bpf_map_info);
> @@ -231,9 +213,7 @@ virBPFLookupElem(int mapfd,
> void *key,
> void *val)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.map_fd = mapfd;
> attr.key = (uintptr_t)key;
> @@ -248,9 +228,7 @@ virBPFGetNextElem(int mapfd,
> void *key,
> void *nextKey)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.map_fd = mapfd;
> attr.key = (uintptr_t)key;
> @@ -265,9 +243,7 @@ virBPFUpdateElem(int mapfd,
> void *key,
> void *val)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.map_fd = mapfd;
> attr.key = (uintptr_t)key;
> @@ -281,9 +257,7 @@ int
> virBPFDeleteElem(int mapfd,
> void *key)
> {
> - union bpf_attr attr;
> -
> - memset(&attr, 0, sizeof(attr));
> + union bpf_attr attr = { 0 };
>
> attr.map_fd = mapfd;
> attr.key = (uintptr_t)key;
> diff --git a/src/util/virdevmapper.c b/src/util/virdevmapper.c
> index 33cf3e202b..70ce0f0c23 100644
> --- a/src/util/virdevmapper.c
> +++ b/src/util/virdevmapper.c
> @@ -128,12 +128,10 @@ static int
> virDMOpen(void)
> {
> VIR_AUTOCLOSE controlFD = -1;
> - struct dm_ioctl dm;
> + struct dm_ioctl dm = { 0 };
> g_autofree char *tmp = NULL;
> int ret;
>
> - memset(&dm, 0, sizeof(dm));
> -
> if ((controlFD = open(CONTROL_PATH, O_RDWR)) < 0) {
> /* We can't talk to devmapper. Produce a warning and let
> * the caller decide what to do next. */
> @@ -223,12 +221,10 @@ virDevMapperGetTargetsImpl(int controlFD,
> {
> g_autofree char *sanitizedPath = NULL;
> g_autofree char *buf = NULL;
> - struct dm_ioctl dm;
> + struct dm_ioctl dm = { 0 };
> struct dm_target_deps *deps = NULL;
> size_t i;
>
> - memset(&dm, 0, sizeof(dm));
> -
> if (ttl == 0) {
> errno = ELOOP;
> return -1;
> diff --git a/src/util/virfdstream.c b/src/util/virfdstream.c
> index 0e39889ac9..26a1f00316 100644
> --- a/src/util/virfdstream.c
> +++ b/src/util/virfdstream.c
> @@ -1192,7 +1192,7 @@ int virFDStreamConnectUNIX(virStreamPtr st,
> const char *path,
> bool abstract)
> {
> - struct sockaddr_un sa;
> + struct sockaddr_un sa = { 0 };
> virTimeBackOffVar timeout;
> VIR_AUTOCLOSE fd = -1;
> int ret;
> @@ -1203,7 +1203,6 @@ int virFDStreamConnectUNIX(virStreamPtr st,
> return -1;
> }
>
> - memset(&sa, 0, sizeof(sa));
> sa.sun_family = AF_UNIX;
> if (abstract) {
> if (virStrcpy(sa.sun_path+1, path, sizeof(sa.sun_path)-1) < 0)
> diff --git a/src/util/virfile.c b/src/util/virfile.c
> index 2984e2ead2..fe456596ae 100644
> --- a/src/util/virfile.c
> +++ b/src/util/virfile.c
> @@ -876,14 +876,13 @@ int virFileLoopDeviceAssociate(const char *file,
> {
> int lofd = -1;
> int fsfd = -1;
> - struct loop_info64 lo;
> + struct loop_info64 lo = { 0 };
> g_autofree char *loname = NULL;
> int ret = -1;
>
> if ((lofd = virFileLoopDeviceOpen(&loname)) < 0)
> return -1;
>
> - memset(&lo, 0, sizeof(lo));
> lo.lo_flags = LO_FLAGS_AUTOCLEAR;
>
> /* Set backing file name for LOOP_GET_STATUS64 queries */
> diff --git a/src/util/virinitctl.c b/src/util/virinitctl.c
> index 430f23a235..d26249a3e9 100644
> --- a/src/util/virinitctl.c
> +++ b/src/util/virinitctl.c
> @@ -124,14 +124,12 @@ int
> virInitctlSetRunLevel(const char *fifo,
> virInitctlRunLevel level)
> {
> - struct virInitctlRequest req;
> + struct virInitctlRequest req = { 0 };
> int fd = -1;
> int ret = -1;
> const int open_flags = O_WRONLY|O_NONBLOCK|O_CLOEXEC|O_NOCTTY;
> size_t i = 0;
>
> - memset(&req, 0, sizeof(req));
> -
> req.magic = VIR_INITCTL_MAGIC;
> req.sleeptime = 0;
> req.cmd = VIR_INITCTL_CMD_RUNLVL;
> diff --git a/src/util/viriscsi.c b/src/util/viriscsi.c
> index 4790bd4b55..a70c87cbdb 100644
> --- a/src/util/viriscsi.c
> +++ b/src/util/viriscsi.c
> @@ -394,7 +394,7 @@ virISCSIScanTargetsInternal(const char *portal,
> "^\\s*(\\S+)\\s+(\\S+)\\s*$"
> };
> int vars[] = { 2 };
> - struct virISCSITargetList list;
> + struct virISCSITargetList list = { 0 };
> size_t i;
> g_autoptr(virCommand) cmd = virCommandNewArgList(ISCSIADM,
> "--mode", "discovery",
> @@ -414,8 +414,6 @@ virISCSIScanTargetsInternal(const char *portal,
> NULL);
> }
>
> - memset(&list, 0, sizeof(list));
> -
> if (virCommandRunRegex(cmd,
> 1,
> regexes,
> diff --git a/src/util/virlog.c b/src/util/virlog.c
> index 6bbd69fe43..2d262d94f0 100644
> --- a/src/util/virlog.c
> +++ b/src/util/virlog.c
> @@ -897,12 +897,12 @@ virLogOutputToJournald(virLogSource *source,
> {
> int buffd = -1;
> int journalfd = (intptr_t) data;
> - struct msghdr mh;
> - struct sockaddr_un sa;
> + struct msghdr mh = { 0 };
> + struct sockaddr_un sa = { 0 };
> union {
> struct cmsghdr cmsghdr;
> uint8_t buf[CMSG_SPACE(sizeof(int))];
> - } control;
> + } control = { 0 };
> struct cmsghdr *cmsg;
> /* We use /dev/shm instead of /tmp here, since we want this to
> * be a tmpfs, and one that is available from early boot on
> @@ -950,12 +950,10 @@ virLogOutputToJournald(virLogSource *source,
> }
> }
>
> - memset(&sa, 0, sizeof(sa));
> sa.sun_family = AF_UNIX;
> if (virStrcpyStatic(sa.sun_path, "/run/systemd/journal/socket") < 0)
> return;
>
> - memset(&mh, 0, sizeof(mh));
> mh.msg_name = &sa;
> mh.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(sa.sun_path);
> mh.msg_iov = iov;
> @@ -983,7 +981,6 @@ virLogOutputToJournald(virLogSource *source,
> mh.msg_iov = NULL;
> mh.msg_iovlen = 0;
>
> - memset(&control, 0, sizeof(control));
> mh.msg_control = &control;
> mh.msg_controllen = sizeof(control);
>
> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> index 38a4f480eb..46d90fbd76 100644
> --- a/src/util/virnetdev.c
> +++ b/src/util/virnetdev.c
> @@ -812,9 +812,7 @@ virNetDevGetRcvAllMulti(const char *ifname,
> #if defined(WITH_IF_INDEXTONAME)
> char *virNetDevGetName(int ifindex)
> {
> - char name[IFNAMSIZ];
> -
> - memset(&name, 0, sizeof(name));
> + char name[IFNAMSIZ] = { 0 };
>
> if (!if_indextoname(ifindex, name)) {
> virReportSystemError(errno,
> @@ -847,7 +845,7 @@ char *virNetDevGetName(int ifindex)
> #if defined(SIOCGIFINDEX) && defined(WITH_STRUCT_IFREQ)
> int virNetDevGetIndex(const char *ifname, int *ifindex)
> {
> - struct ifreq ifreq;
> + struct ifreq ifreq = { 0 };
> VIR_AUTOCLOSE fd = socket(VIR_NETDEV_FAMILY, SOCK_DGRAM, 0);
>
> if (fd < 0) {
> @@ -856,8 +854,6 @@ int virNetDevGetIndex(const char *ifname, int *ifindex)
> return -1;
> }
>
> - memset(&ifreq, 0, sizeof(ifreq));
> -
> if (virStrcpyStatic(ifreq.ifr_name, ifname) < 0) {
> virReportSystemError(ERANGE,
> _("invalid interface name %1$s"),
> diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
> index b870e26e5f..5fd88f3195 100644
> --- a/src/util/virnetdevbridge.c
> +++ b/src/util/virnetdevbridge.c
> @@ -57,11 +57,9 @@ static int virNetDevBridgeCmd(const char *brname,
> void *arg,
> size_t argsize)
> {
> - struct ifdrv ifd;
> + struct ifdrv ifd = { 0 };
> VIR_AUTOCLOSE s = -1;
>
> - memset(&ifd, 0, sizeof(ifd));
> -
> if ((s = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0) {
> virReportSystemError(errno, "%s",
> _("Cannot open network interface control socket"));
> @@ -621,9 +619,8 @@ int virNetDevBridgeAddPort(const char *brname,
> int virNetDevBridgeAddPort(const char *brname,
> const char *ifname)
> {
> - struct ifbreq req;
> + struct ifbreq req = { 0 };
>
> - memset(&req, 0, sizeof(req));
> if (virStrcpyStatic(req.ifbr_ifsname, ifname) < 0) {
> virReportSystemError(ERANGE,
> _("Network interface name '%1$s' is too long"),
> @@ -687,9 +684,8 @@ int virNetDevBridgeRemovePort(const char *brname,
> int virNetDevBridgeRemovePort(const char *brname,
> const char *ifname)
> {
> - struct ifbreq req;
> + struct ifbreq req = { 0 };
>
> - memset(&req, 0, sizeof(req));
> if (virStrcpyStatic(req.ifbr_ifsname, ifname) < 0) {
> virReportSystemError(ERANGE,
> _("Network interface name '%1$s' is too long"),
> diff --git a/src/util/virnetdevip.c b/src/util/virnetdevip.c
> index d1e717641c..3b02fe0cec 100644
> --- a/src/util/virnetdevip.c
> +++ b/src/util/virnetdevip.c
> @@ -84,7 +84,7 @@ virNetDevCreateNetlinkAddressMessage(int messageType,
> virSocketAddr *peer)
> {
> struct nl_msg *nlmsg = NULL;
> - struct ifaddrmsg ifa;
> + struct ifaddrmsg ifa = { 0 };
> unsigned int ifindex;
> void *addrData = NULL;
> void *peerData = NULL;
> @@ -110,8 +110,6 @@ virNetDevCreateNetlinkAddressMessage(int messageType,
> nlmsg = virNetlinkMsgNew(messageType,
> NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL);
>
> - memset(&ifa, 0, sizeof(ifa));
> -
> ifa.ifa_prefixlen = prefix;
> ifa.ifa_family = VIR_SOCKET_ADDR_FAMILY(addr);
> ifa.ifa_index = ifindex;
> @@ -277,7 +275,7 @@ virNetDevIPRouteAdd(const char *ifname,
> {
> unsigned int recvbuflen;
> unsigned int ifindex;
> - struct rtmsg rtmsg;
> + struct rtmsg rtmsg = { 0 };
> void *gatewayData = NULL;
> void *addrData = NULL;
> size_t addrDataLen;
> @@ -323,8 +321,6 @@ virNetDevIPRouteAdd(const char *ifname,
> nlmsg = virNetlinkMsgNew(RTM_NEWROUTE,
> NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL);
>
> - memset(&rtmsg, 0, sizeof(rtmsg));
> -
> rtmsg.rtm_family = VIR_SOCKET_ADDR_FAMILY(gateway);
> rtmsg.rtm_table = RT_TABLE_MAIN;
> rtmsg.rtm_scope = RT_SCOPE_UNIVERSE;
> diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c
> index 3e25f18770..3bfd36fc23 100644
> --- a/src/util/virnetdevtap.c
> +++ b/src/util/virnetdevtap.c
> @@ -270,7 +270,7 @@ int virNetDevTapCreate(char **ifname,
> int virNetDevTapDelete(const char *ifname,
> const char *tunpath)
> {
> - struct ifreq try;
> + struct ifreq try = { 0 };
> int fd;
> int ret = -1;
>
> @@ -284,7 +284,6 @@ int virNetDevTapDelete(const char *ifname,
> return -1;
> }
>
> - memset(&try, 0, sizeof(struct ifreq));
> try.ifr_flags = IFF_TAP|IFF_NO_PI;
>
> if (virStrcpyStatic(try.ifr_name, ifname) < 0) {
> diff --git a/src/util/virperf.c b/src/util/virperf.c
> index 03341e73e3..91f2ca632a 100644
> --- a/src/util/virperf.c
> +++ b/src/util/virperf.c
> @@ -203,7 +203,7 @@ virPerfEventEnable(virPerf *perf,
> virPerfEventType type,
> pid_t pid)
> {
> - struct perf_event_attr attr;
> + struct perf_event_attr attr = { 0 };
> struct virPerfEvent *event = &(perf->events[type]);
> struct virPerfEventAttr *event_attr = &attrs[type];
>
> @@ -233,7 +233,6 @@ virPerfEventEnable(virPerf *perf,
> }
> }
>
> - memset(&attr, 0, sizeof(attr));
> attr.size = sizeof(attr);
> attr.inherit = 1;
> attr.disabled = 1;
> diff --git a/src/util/virprocess.c b/src/util/virprocess.c
> index a26683f333..f8daa786c9 100644
> --- a/src/util/virprocess.c
> +++ b/src/util/virprocess.c
> @@ -1539,13 +1539,12 @@ virProcessExitWithStatus(int status)
> if (WIFEXITED(status)) {
> value = WEXITSTATUS(status);
> } else if (WIFSIGNALED(status)) {
> - struct sigaction act;
> + struct sigaction act = { 0 };
> sigset_t sigs;
>
> if (sigemptyset(&sigs) == 0 &&
> sigaddset(&sigs, WTERMSIG(status)) == 0)
> sigprocmask(SIG_UNBLOCK, &sigs, NULL);
> - memset(&act, 0, sizeof(act));
> act.sa_handler = SIG_DFL;
> sigfillset(&act.sa_mask);
> sigaction(WTERMSIG(status), &act, NULL);
> diff --git a/src/util/virsocket.c b/src/util/virsocket.c
> index a6f185114d..cd6f7ecd1b 100644
> --- a/src/util/virsocket.c
> +++ b/src/util/virsocket.c
> @@ -389,12 +389,11 @@ virSocketSendFD(int sock, int fd)
> {
> char byte = 0;
> struct iovec iov;
> - struct msghdr msg;
> + struct msghdr msg = { 0 };
> struct cmsghdr *cmsg;
> char buf[CMSG_SPACE(sizeof(fd))];
>
> /* send at least one char */
> - memset(&msg, 0, sizeof(msg));
> iov.iov_base = &byte;
> iov.iov_len = 1;
> msg.msg_iov = &iov;
> @@ -428,7 +427,7 @@ virSocketRecvFD(int sock, int fdflags)
> {
> char byte = 0;
> struct iovec iov;
> - struct msghdr msg;
> + struct msghdr msg = { 0 };
> int fd = -1;
> ssize_t len;
> struct cmsghdr *cmsg;
> @@ -441,7 +440,6 @@ virSocketRecvFD(int sock, int fdflags)
> }
>
> /* send at least one char */
> - memset(&msg, 0, sizeof(msg));
> iov.iov_base = &byte;
> iov.iov_len = 1;
> msg.msg_iov = &iov;
> diff --git a/src/util/virsocketaddr.c b/src/util/virsocketaddr.c
> index 43511bdd69..fbda858cfe 100644
> --- a/src/util/virsocketaddr.c
> +++ b/src/util/virsocketaddr.c
> @@ -92,7 +92,7 @@ virSocketAddrParseInternal(struct addrinfo **res,
> int ai_flags,
> bool reportError)
> {
> - struct addrinfo hints;
> + struct addrinfo hints = { 0 };
> int err;
>
> if (val == NULL) {
> @@ -101,7 +101,6 @@ virSocketAddrParseInternal(struct addrinfo **res,
> return -1;
> }
>
> - memset(&hints, 0, sizeof(hints));
> hints.ai_family = family;
> hints.ai_flags = ai_flags;
> if ((err = getaddrinfo(val, NULL, &hints, res)) != 0) {
> @@ -240,12 +239,10 @@ virSocketAddrParseIPv6(virSocketAddr *addr, const char *val)
> int virSocketAddrResolveService(const char *service)
> {
> struct addrinfo *res, *tmp;
> - struct addrinfo hints;
> + struct addrinfo hints = { 0 };
> int err;
> int port = -1;
>
> - memset(&hints, 0, sizeof(hints));
> -
> if ((err = getaddrinfo(NULL, service, &hints, &res)) != 0) {
> virReportError(VIR_ERR_SYSTEM_ERROR,
> _("Cannot parse socket service '%1$s': %2$s"),
> diff --git a/src/util/viruri.c b/src/util/viruri.c
> index a824a983df..64995da342 100644
> --- a/src/util/viruri.c
> +++ b/src/util/viruri.c
> @@ -201,12 +201,10 @@ virURIParse(const char *uri)
> char *
> virURIFormat(virURI *uri)
> {
> - xmlURI xmluri;
> + xmlURI xmluri = { 0 };
> g_autofree char *tmpserver = NULL;
> char *ret;
>
> - memset(&xmluri, 0, sizeof(xmluri));
> -
> xmluri.scheme = uri->scheme;
> xmluri.server = uri->server;
> xmluri.port = uri->port;
> diff --git a/src/vbox/vbox_storage.c b/src/vbox/vbox_storage.c
> index 41b19a9c62..2285beea79 100644
> --- a/src/vbox/vbox_storage.c
> +++ b/src/vbox/vbox_storage.c
> @@ -396,7 +396,7 @@ vboxStorageVolCreateXML(virStoragePoolPtr pool,
> struct _vboxDriver *data = pool->conn->privateData;
> PRUnichar *hddFormatUtf16 = NULL;
> PRUnichar *hddNameUtf16 = NULL;
> - virStoragePoolDef poolDef;
> + virStoragePoolDef poolDef = { 0 };
> nsresult rc;
> vboxIID hddIID;
> unsigned char uuid[VIR_UUID_BUFLEN];
> @@ -424,7 +424,6 @@ vboxStorageVolCreateXML(virStoragePoolPtr pool,
> * so just assign it for now, change the behaviour
> * when vbox supports pools.
> */
> - memset(&poolDef, 0, sizeof(poolDef));
> poolDef.type = VIR_STORAGE_POOL_DIR;
>
> if ((def = virStorageVolDefParse(&poolDef, xml, NULL, parseFlags)) == NULL)
> @@ -720,8 +719,8 @@ static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags)
> char *hddFormatUtf8 = NULL;
> PRUint64 hddLogicalSize = 0;
> PRUint64 hddActualSize = 0;
> - virStoragePoolDef pool;
> - virStorageVolDef def;
> + virStoragePoolDef pool = { 0 };
> + virStorageVolDef def = { 0 };
> vboxIID hddIID;
> PRUint32 hddstate;
> nsresult rc;
> @@ -732,9 +731,6 @@ static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags)
>
> virCheckFlags(0, NULL);
>
> - memset(&pool, 0, sizeof(pool));
> - memset(&def, 0, sizeof(def));
> -
> if (virUUIDParse(vol->key, uuid) < 0) {
> virReportError(VIR_ERR_INVALID_ARG,
> _("Could not parse UUID from '%1$s'"), vol->key);
> diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
> index 5e0f1b6b3e..fe4f253e9e 100644
> --- a/src/vmx/vmx.c
> +++ b/src/vmx/vmx.c
> @@ -1044,11 +1044,9 @@ virVMXVerifyDiskAddress(virDomainXMLOption *xmlopt,
> virDomainDiskDef *disk,
> virDomainDef *vmdef)
> {
> - virDomainDiskDef def;
> + virDomainDiskDef def = { 0 };
> virDomainDeviceDriveAddress *drive;
>
> - memset(&def, 0, sizeof(def));
> -
> if (disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) {
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> _("Unsupported disk address type '%1$s'"),
> diff --git a/tests/nsstest.c b/tests/nsstest.c
> index 615b063118..4b7895db7e 100644
> --- a/tests/nsstest.c
> +++ b/tests/nsstest.c
> @@ -39,14 +39,12 @@ testGetHostByName(const void *opaque)
> {
> const struct testNSSData *data = opaque;
> const bool existent = data->hostname && data->ipAddr && data->ipAddr[0];
> - struct hostent resolved;
> + struct hostent resolved = { 0 };
> char buf[BUF_SIZE] = { 0 };
> char **addrList;
> int rv, tmp_errno = 0, tmp_herrno = 0;
> size_t i = 0;
>
> - memset(&resolved, 0, sizeof(resolved));
> -
> rv = NSS_NAME(gethostbyname2)(data->hostname,
> data->af,
> &resolved,
> @@ -116,12 +114,10 @@ testGetHostByName(const void *opaque)
> addrList = resolved.h_addr_list;
> i = 0;
> while (*addrList) {
> - virSocketAddr sa;
> + virSocketAddr sa = { 0 };
> g_autofree char *ipAddr = NULL;
> void *address = *addrList;
>
> - memset(&sa, 0, sizeof(sa));
> -
> if (resolved.h_addrtype == AF_INET) {
> virSocketAddrSetIPv4AddrNetOrder(&sa, *((uint32_t *) address));
> } else {
> diff --git a/tests/nwfilterxml2firewalltest.c b/tests/nwfilterxml2firewalltest.c
> index bd112cef83..b78b1b7947 100644
> --- a/tests/nwfilterxml2firewalltest.c
> +++ b/tests/nwfilterxml2firewalltest.c
> @@ -348,12 +348,10 @@ static int testCompareXMLToArgvFiles(const char *xml,
> g_autofree char *actualargv = NULL;
> g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
> g_autoptr(GHashTable) vars = virHashNew(virNWFilterVarValueHashFree);
> - virNWFilterInst inst;
> + virNWFilterInst inst = { 0 };
> int ret = -1;
> g_autoptr(virCommandDryRunToken) dryRunToken = virCommandDryRunTokenNew();
>
> - memset(&inst, 0, sizeof(inst));
> -
> virCommandSetDryRun(dryRunToken, &buf, true, true, NULL, NULL);
>
> if (testSetDefaultParameters(vars) < 0)
> diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
> index 4672b0a8ff..a1740d3f45 100644
> --- a/tests/qemumonitorjsontest.c
> +++ b/tests/qemumonitorjsontest.c
> @@ -895,7 +895,7 @@ testQemuMonitorJSONGetObjectProperty(const void *opaque)
> {
> const testGenericData *data = opaque;
> virDomainXMLOption *xmlopt = data->xmlopt;
> - qemuMonitorJSONObjectProperty prop;
> + qemuMonitorJSONObjectProperty prop = { 0 };
> g_autoptr(qemuMonitorTest) test = NULL;
>
> if (!(test = qemuMonitorTestNewSchema(xmlopt, data->schema)))
> @@ -906,7 +906,6 @@ testQemuMonitorJSONGetObjectProperty(const void *opaque)
> return -1;
>
> /* Present with path and property */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN;
> if (qemuMonitorJSONGetObjectProperty(qemuMonitorTestGetMonitor(test),
> "/machine/i440fx",
> @@ -935,7 +934,7 @@ testQemuMonitorJSONSetObjectProperty(const void *opaque)
> {
> const testGenericData *data = opaque;
> virDomainXMLOption *xmlopt = data->xmlopt;
> - qemuMonitorJSONObjectProperty prop;
> + qemuMonitorJSONObjectProperty prop = { 0 };
> g_autoptr(qemuMonitorTest) test = NULL;
>
> if (!(test = qemuMonitorTestNewSchema(xmlopt, data->schema)))
> @@ -949,7 +948,6 @@ testQemuMonitorJSONSetObjectProperty(const void *opaque)
> return -1;
>
> /* Let's attempt the setting */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN;
> prop.val.b = true;
> if (qemuMonitorJSONSetObjectProperty(qemuMonitorTestGetMonitor(test),
> diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c
> index 8b8b02a790..16a4096c98 100644
> --- a/tests/qemumonitortestutils.c
> +++ b/tests/qemumonitortestutils.c
> @@ -874,9 +874,7 @@ qemuMonitorTestNew(virDomainXMLOption *xmlopt,
> GHashTable *schema)
> {
> g_autoptr(qemuMonitorTest) test = NULL;
> - virDomainChrSourceDef src;
> -
> - memset(&src, 0, sizeof(src));
> + virDomainChrSourceDef src = { 0 };
>
> if (!(test = qemuMonitorCommonTestNew(xmlopt, vm, &src)))
> goto error;
> @@ -1185,9 +1183,7 @@ qemuMonitorTest *
> qemuMonitorTestNewAgent(virDomainXMLOption *xmlopt)
> {
> g_autoptr(qemuMonitorTest) test = NULL;
> - virDomainChrSourceDef src;
> -
> - memset(&src, 0, sizeof(src));
> + virDomainChrSourceDef src = { 0 };
>
> if (!(test = qemuMonitorCommonTestNew(xmlopt, NULL, &src)))
> goto error;
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index 534eb9e699..c44b9bc494 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -546,7 +546,7 @@ testCompareXMLToArgv(const void *data)
> unsigned int parseFlags = info->parseFlags;
> int ret = -1;
> virDomainObj *vm = NULL;
> - virDomainChrSourceDef monitor_chr;
> + virDomainChrSourceDef monitor_chr = { 0 };
> g_autoptr(virConnect) conn = NULL;
> virError *err = NULL;
> g_autofree char *log = NULL;
> @@ -558,8 +558,6 @@ testCompareXMLToArgv(const void *data)
> virArch arch = VIR_ARCH_NONE;
> g_autoptr(virIdentity) sysident = virIdentityGetSystem();
>
> - memset(&monitor_chr, 0, sizeof(monitor_chr));
> -
> if (testQemuInfoInitArgs((struct testQemuInfo *) info) < 0)
> goto cleanup;
>
> diff --git a/tests/virhostcputest.c b/tests/virhostcputest.c
> index 196f4c29b9..0990013878 100644
> --- a/tests/virhostcputest.c
> +++ b/tests/virhostcputest.c
> @@ -30,7 +30,7 @@ linuxTestCompareFiles(const char *cpuinfofile,
> const char *outputfile)
> {
> g_autofree char *actualData = NULL;
> - virNodeInfo nodeinfo;
> + virNodeInfo nodeinfo = { 0 };
> g_autoptr(FILE) cpuinfo = NULL;
>
> cpuinfo = fopen(cpuinfofile, "r");
> @@ -40,7 +40,6 @@ linuxTestCompareFiles(const char *cpuinfofile,
> return -1;
> }
>
> - memset(&nodeinfo, 0, sizeof(nodeinfo));
> if (virHostCPUGetInfoPopulateLinux(cpuinfo, arch,
> &nodeinfo.cpus, &nodeinfo.mhz,
> &nodeinfo.nodes, &nodeinfo.sockets,
> diff --git a/tests/virnetmessagetest.c b/tests/virnetmessagetest.c
> index 14790c0ece..e426bc7791 100644
> --- a/tests/virnetmessagetest.c
> +++ b/tests/virnetmessagetest.c
> @@ -179,7 +179,7 @@ static int testMessageHeaderDecode(const void *args G_GNUC_UNUSED)
>
> static int testMessagePayloadEncode(const void *args G_GNUC_UNUSED)
> {
> - virNetMessageError err;
> + virNetMessageError err = { 0 };
> virNetMessage *msg = virNetMessageNew(true);
> int ret = -1;
> static const char expect[] = {
> @@ -218,8 +218,6 @@ static int testMessagePayloadEncode(const void *args G_GNUC_UNUSED)
> if (!msg)
> return -1;
>
> - memset(&err, 0, sizeof(err));
> -
> err.code = VIR_ERR_INTERNAL_ERROR;
> err.domain = VIR_FROM_RPC;
> err.level = VIR_ERR_ERROR;
> @@ -287,7 +285,7 @@ static int testMessagePayloadEncode(const void *args G_GNUC_UNUSED)
>
> static int testMessagePayloadDecode(const void *args G_GNUC_UNUSED)
> {
> - virNetMessageError err;
> + virNetMessageError err = { 0 };
> virNetMessage *msg = virNetMessageNew(true);
> static char input_buffer[] = {
> 0x00, 0x00, 0x00, 0x74, /* Length */
> @@ -323,8 +321,6 @@ static int testMessagePayloadDecode(const void *args G_GNUC_UNUSED)
> };
> int ret = -1;
>
> - memset(&err, 0, sizeof(err));
> -
> if (!msg)
> return -1;
>
> diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
> index ec7763224b..ec14ac804b 100644
> --- a/tools/nss/libvirt_nss.c
> +++ b/tools/nss/libvirt_nss.c
> @@ -484,13 +484,12 @@ aiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **aip)
> struct sockaddr sa;
> struct sockaddr_in sin;
> struct sockaddr_in6 sin6;
> - } sa;
> + } sa = { 0 };
> socklen_t salen;
> void *address = *addrList;
> char host[NI_MAXHOST];
> char port[NI_MAXSERV];
>
> - memset(&sa, 0, sizeof(sa));
> if (resolved.h_addrtype == AF_INET) {
> sa.sin.sin_family = AF_INET;
> memcpy(&sa.sin.sin_addr.s_addr,
> diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
> index c74fc19347..89fdc7a050 100644
> --- a/tools/virsh-domain-monitor.c
> +++ b/tools/virsh-domain-monitor.c
> @@ -1210,7 +1210,7 @@ cmdDominfo(vshControl *ctl, const vshCmd *cmd)
> {
> virDomainInfo info;
> g_autoptr(virshDomain) dom = NULL;
> - virSecurityModel secmodel;
> + virSecurityModel secmodel = { 0 };
> int persistent = 0;
> bool ret = true;
> int autostart;
> @@ -1288,7 +1288,6 @@ cmdDominfo(vshControl *ctl, const vshCmd *cmd)
> has_managed_save ? _("yes") : _("no"));
>
> /* Security model and label information */
> - memset(&secmodel, 0, sizeof(secmodel));
> if (virNodeGetSecurityModel(priv->conn, &secmodel) == -1) {
> if (last_error->code != VIR_ERR_NO_SUPPORT) {
> return false;
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index fb54562eb6..7d76055eda 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -6182,7 +6182,7 @@ virshDomainJobStatsToDomainJobInfo(virTypedParameterPtr params,
> static bool
> cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
> {
> - virDomainJobInfo info;
> + virDomainJobInfo info = { 0 };
> g_autoptr(virshDomain) dom = NULL;
> bool ret = false;
> const char *unit;
> @@ -6209,8 +6209,6 @@ cmdDomjobinfo(vshControl *ctl, const vshCmd *cmd)
> if (vshCommandOptBool(cmd, "keep-completed"))
> flags |= VIR_DOMAIN_JOB_STATS_KEEP_COMPLETED;
>
> - memset(&info, 0, sizeof(info));
> -
> rc = virDomainGetJobStats(dom, &info.type, ¶ms, &nparams, flags);
> if (rc == 0) {
> if (virshDomainJobStatsToDomainJobInfo(params, nparams, &info) < 0)
> diff --git a/tools/vsh-table.c b/tools/vsh-table.c
> index 005cc564dd..da7dc84ee8 100644
> --- a/tools/vsh-table.c
> +++ b/tools/vsh-table.c
> @@ -204,9 +204,7 @@ vshTableSafeEncode(const char *s, size_t *width)
> size_t sz = s ? strlen(s) : 0;
> char *buf;
> char *ret;
> - mbstate_t st;
> -
> - memset(&st, 0, sizeof(st));
> + mbstate_t st = { 0 };
>
> buf = g_new0(char, (sz * HEX_ENCODE_LENGTH) + 1);
>
More information about the libvir-list
mailing list