summaryrefslogtreecommitdiff
path: root/tests/virhostdevtest.c
diff options
context:
space:
mode:
authorMichal Privoznik <mprivozn@redhat.com>2023-02-06 16:03:44 +0100
committerMichal Privoznik <mprivozn@redhat.com>2023-02-06 16:33:26 +0100
commit874e0916c31f5c663b93f2d20cf37bdac193f344 (patch)
treef4a5fffeb786dc39e4ff294b68d087510ceb5c17 /tests/virhostdevtest.c
parentaf954d60468b502ccb2ef29a1504c908d8f9d77d (diff)
downloadlibvirt-874e0916c31f5c663b93f2d20cf37bdac193f344.tar.gz
virhostdevtest: Decrease possibility of uninitialized @subsys
With the current way the myInit() is written, it's fairly easy to miss initialization of @subsys variable as the variable is allocated firstly on the stack and then it's assigned to hostdev[i] which was allocated using g_new0() (this it is containing nothing but all zeroes). Make the subsys point to the corresponding member in hostdev[i] from the start. This way only the important bits are overwritten and the rest stays initialized to zero. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Diffstat (limited to 'tests/virhostdevtest.c')
-rw-r--r--tests/virhostdevtest.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/tests/virhostdevtest.c b/tests/virhostdevtest.c
index 92bafcbb49..1aed0d2b6d 100644
--- a/tests/virhostdevtest.c
+++ b/tests/virhostdevtest.c
@@ -123,23 +123,23 @@ myInit(void)
size_t i;
for (i = 0; i < nhostdevs; i++) {
- virDomainHostdevSubsys subsys = {0};
+ virDomainHostdevSubsys *subsys;
hostdevs[i] = virDomainHostdevDefNew();
if (!hostdevs[i])
goto cleanup;
hostdevs[i]->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
- subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
- subsys.u.pci.addr.domain = 0;
- subsys.u.pci.addr.bus = 0;
- subsys.u.pci.addr.slot = i + 1;
- subsys.u.pci.addr.function = 0;
- subsys.u.pci.backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO;
- hostdevs[i]->source.subsys = subsys;
+ subsys = &hostdevs[i]->source.subsys;
+ subsys->type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
+ subsys->u.pci.addr.domain = 0;
+ subsys->u.pci.addr.bus = 0;
+ subsys->u.pci.addr.slot = i + 1;
+ subsys->u.pci.addr.function = 0;
+ subsys->u.pci.backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO;
}
for (i = 0; i < nhostdevs; i++) {
- virDomainHostdevSubsys subsys = hostdevs[i]->source.subsys;
- if (!(dev[i] = virPCIDeviceNew(&subsys.u.pci.addr)))
+ virDomainHostdevSubsys *subsys = &hostdevs[i]->source.subsys;
+ if (!(dev[i] = virPCIDeviceNew(&subsys->u.pci.addr)))
goto cleanup;
virPCIDeviceSetStubDriver(dev[i], VIR_PCI_STUB_DRIVER_VFIO);