Hi,
Please find the latest report on new defect(s) introduced to libvirt found with Coverity Scan.
** CID 910061: Memory - illegal accesses (USE_AFTER_FREE)
/tests/qemumonitortestutils.c: 1250 in qemuMonitorTestEmitDeviceDeleted()
_____________________________________________________________________________________________
*** CID 910061: Memory - illegal accesses (USE_AFTER_FREE)
/tests/qemumonitortestutils.c: 1250 in qemuMonitorTestEmitDeviceDeleted()
1244 void
1245 qemuMonitorTestEmitDeviceDeleted(qemuMonitorTest *test,
1246 const char *alias)
1247 {
1248 virObjectLock(test->mon);
1249 qemuMonitorEmitDeviceDeleted(test->mon, alias);
>>> CID 910061: Memory - illegal accesses (USE_AFTER_FREE)
>>> Calling "virObjectUnlock" dereferences freed pointer "test->mon". (The dereference is assumed on the basis of the "nonnull" parameter attribute.)
1250 virObjectUnlock(test->mon);
** CID 910060: Error handling issues (CHECKED_RETURN)
/tests/qemuhotplugtest.c: 401 in testQemuHotplugCpuAsyncDataClear()
_____________________________________________________________________________________________
*** CID 910060: Error handling issues (CHECKED_RETURN)
/tests/qemuhotplugtest.c: 401 in testQemuHotplugCpuAsyncDataClear()
395
396 static void
397 testQemuHotplugCpuAsyncDataClear(struct testQemuHotplugCpuAsyncData *asyncData,
398 virConnectPtr conn)
399 {
400 if (asyncData->eventCallbackID >= 0)
>>> CID 910060: Error handling issues (CHECKED_RETURN)
>>> Calling "virObjectEventStateDeregisterID" without checking return value (as is done elsewhere 19 out of 21 times).
401 virObjectEventStateDeregisterID(conn, driver.domainEventState,
402 asyncData->eventCallbackID, true);
403
404 if (asyncData->ownsWorkerPool)
405 g_clear_pointer(&driver.workerPool, virThreadPoolFree);
406
** CID 910059: (USE_AFTER_FREE)
/src/qemu/qemu_validate.c: 1338 in qemuValidateDomainDef()
/src/qemu/qemu_validate.c: 1317 in qemuValidateDomainDef()
_____________________________________________________________________________________________
*** CID 910059: (USE_AFTER_FREE)
/src/qemu/qemu_validate.c: 1338 in qemuValidateDomainDef()
1332 }
1333
1334 if (!virQEMUCapsIsMachineSupported(qemuCaps, def->virtType, def->os.machine)) {
1335 virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
1336 _("Emulator '%1$s' does not support machine type '%2$s'"),
1337 def->emulator, def->os.machine);
>>> CID 910059: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
1338 return -1;
1339 }
1340
1341 if (virQEMUCapsMachineSupportsACPI(qemuCaps, def->virtType, def->os.machine) == VIR_TRISTATE_BOOL_NO &&
1342 def->features[VIR_DOMAIN_FEATURE_ACPI] == VIR_TRISTATE_SWITCH_ON) {
1343 virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
/src/qemu/qemu_validate.c: 1317 in qemuValidateDomainDef()
1311 return -1;
1312
1313 if (def->os.type != VIR_DOMAIN_OSTYPE_HVM) {
1314 virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
1315 _("Emulator '%1$s' does not support os type '%2$s'"),
1316 def->emulator, virDomainOSTypeToString(def->os.type));
>>> CID 910059: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
1317 return -1;
1318 }
1319
1320 if (!virQEMUCapsIsArchSupported(qemuCaps, def->os.arch)) {
1321 virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
1322 _("Emulator '%1$s' does not support arch '%2$s'"),
** CID 910058: (USE_AFTER_FREE)
/src/qemu/qemu_validate.c: 6170 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6113 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6148 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6116 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6106 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6145 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6164 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6142 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6167 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6161 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6125 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6152 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6173 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6135 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6122 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6155 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6119 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6128 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6132 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6158 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6110 in qemuValidateDomainDeviceDef()
/src/qemu/qemu_validate.c: 6138 in qemuValidateDomainDeviceDef()
_____________________________________________________________________________________________
*** CID 910058: (USE_AFTER_FREE)
/src/qemu/qemu_validate.c: 6170 in qemuValidateDomainDeviceDef()
6164 return qemuValidateDomainDeviceDefNVRAM(dev->data.nvram, def, qemuCaps);
6165
6166 case VIR_DOMAIN_DEVICE_HUB:
6167 return qemuValidateDomainDeviceDefHub(dev->data.hub, qemuCaps);
6168
6169 case VIR_DOMAIN_DEVICE_SOUND:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6170 return qemuValidateDomainDeviceDefSound(dev->data.sound, qemuCaps);
6171
6172 case VIR_DOMAIN_DEVICE_MEMORY:
6173 return qemuValidateDomainDeviceDefMemory(dev->data.memory, def, qemuCaps);
6174
6175 case VIR_DOMAIN_DEVICE_SHMEM:
/src/qemu/qemu_validate.c: 6113 in qemuValidateDomainDeviceDef()
6107
6108 switch (dev->type) {
6109 case VIR_DOMAIN_DEVICE_NET:
6110 return qemuValidateDomainDeviceDefNetwork(dev->data.net, def, qemuCaps);
6111
6112 case VIR_DOMAIN_DEVICE_CHR:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6113 return qemuValidateDomainChrDef(dev->data.chr, def, qemuCaps);
6114
6115 case VIR_DOMAIN_DEVICE_SMARTCARD:
6116 return qemuValidateDomainSmartcardDef(dev->data.smartcard, def, qemuCaps);
6117
6118 case VIR_DOMAIN_DEVICE_RNG:
/src/qemu/qemu_validate.c: 6148 in qemuValidateDomainDeviceDef()
6142 return qemuValidateDomainDeviceDefVsock(qemuCaps);
6143
6144 case VIR_DOMAIN_DEVICE_TPM:
6145 return qemuValidateDomainDeviceDefTPM(dev->data.tpm, def, qemuCaps);
6146
6147 case VIR_DOMAIN_DEVICE_GRAPHICS:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6148 return qemuValidateDomainDeviceDefGraphics(dev->data.graphics, def,
6149 driver, qemuCaps);
6150
6151 case VIR_DOMAIN_DEVICE_INPUT:
6152 return qemuValidateDomainDeviceDefInput(dev->data.input, def, qemuCaps);
6153
/src/qemu/qemu_validate.c: 6116 in qemuValidateDomainDeviceDef()
6110 return qemuValidateDomainDeviceDefNetwork(dev->data.net, def, qemuCaps);
6111
6112 case VIR_DOMAIN_DEVICE_CHR:
6113 return qemuValidateDomainChrDef(dev->data.chr, def, qemuCaps);
6114
6115 case VIR_DOMAIN_DEVICE_SMARTCARD:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6116 return qemuValidateDomainSmartcardDef(dev->data.smartcard, def, qemuCaps);
6117
6118 case VIR_DOMAIN_DEVICE_RNG:
6119 return qemuValidateDomainRNGDef(dev->data.rng, def, qemuCaps);
6120
6121 case VIR_DOMAIN_DEVICE_REDIRDEV:
/src/qemu/qemu_validate.c: 6106 in qemuValidateDomainDeviceDef()
6100 }
6101
6102 if (qemuDomainUpdateCustomCapabilities(def, qemuCapsIn, &qemuCaps) < 0)
6103 return -1;
6104
6105 if (qemuValidateDomainDeviceInfo(dev, def, qemuCaps) < 0)
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6106 return -1;
6107
6108 switch (dev->type) {
6109 case VIR_DOMAIN_DEVICE_NET:
6110 return qemuValidateDomainDeviceDefNetwork(dev->data.net, def, qemuCaps);
6111
/src/qemu/qemu_validate.c: 6145 in qemuValidateDomainDeviceDef()
6139 qemuCaps);
6140
6141 case VIR_DOMAIN_DEVICE_VSOCK:
6142 return qemuValidateDomainDeviceDefVsock(qemuCaps);
6143
6144 case VIR_DOMAIN_DEVICE_TPM:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6145 return qemuValidateDomainDeviceDefTPM(dev->data.tpm, def, qemuCaps);
6146
6147 case VIR_DOMAIN_DEVICE_GRAPHICS:
6148 return qemuValidateDomainDeviceDefGraphics(dev->data.graphics, def,
6149 driver, qemuCaps);
6150
/src/qemu/qemu_validate.c: 6164 in qemuValidateDomainDeviceDef()
6158 return qemuValidateDomainDeviceDefIOMMU(dev->data.iommu, def, qemuCaps);
6159
6160 case VIR_DOMAIN_DEVICE_FS:
6161 return qemuValidateDomainDeviceDefFS(dev->data.fs, def, qemuCaps);
6162
6163 case VIR_DOMAIN_DEVICE_NVRAM:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6164 return qemuValidateDomainDeviceDefNVRAM(dev->data.nvram, def, qemuCaps);
6165
6166 case VIR_DOMAIN_DEVICE_HUB:
6167 return qemuValidateDomainDeviceDefHub(dev->data.hub, qemuCaps);
6168
6169 case VIR_DOMAIN_DEVICE_SOUND:
/src/qemu/qemu_validate.c: 6142 in qemuValidateDomainDeviceDef()
6136
6137 case VIR_DOMAIN_DEVICE_CONTROLLER:
6138 return qemuValidateDomainDeviceDefController(dev->data.controller, def,
6139 qemuCaps);
6140
6141 case VIR_DOMAIN_DEVICE_VSOCK:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6142 return qemuValidateDomainDeviceDefVsock(qemuCaps);
6143
6144 case VIR_DOMAIN_DEVICE_TPM:
6145 return qemuValidateDomainDeviceDefTPM(dev->data.tpm, def, qemuCaps);
6146
6147 case VIR_DOMAIN_DEVICE_GRAPHICS:
/src/qemu/qemu_validate.c: 6167 in qemuValidateDomainDeviceDef()
6161 return qemuValidateDomainDeviceDefFS(dev->data.fs, def, qemuCaps);
6162
6163 case VIR_DOMAIN_DEVICE_NVRAM:
6164 return qemuValidateDomainDeviceDefNVRAM(dev->data.nvram, def, qemuCaps);
6165
6166 case VIR_DOMAIN_DEVICE_HUB:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6167 return qemuValidateDomainDeviceDefHub(dev->data.hub, qemuCaps);
6168
6169 case VIR_DOMAIN_DEVICE_SOUND:
6170 return qemuValidateDomainDeviceDefSound(dev->data.sound, qemuCaps);
6171
6172 case VIR_DOMAIN_DEVICE_MEMORY:
/src/qemu/qemu_validate.c: 6161 in qemuValidateDomainDeviceDef()
6155 return qemuValidateDomainDeviceDefMemballoon(dev->data.memballoon, qemuCaps);
6156
6157 case VIR_DOMAIN_DEVICE_IOMMU:
6158 return qemuValidateDomainDeviceDefIOMMU(dev->data.iommu, def, qemuCaps);
6159
6160 case VIR_DOMAIN_DEVICE_FS:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6161 return qemuValidateDomainDeviceDefFS(dev->data.fs, def, qemuCaps);
6162
6163 case VIR_DOMAIN_DEVICE_NVRAM:
6164 return qemuValidateDomainDeviceDefNVRAM(dev->data.nvram, def, qemuCaps);
6165
6166 case VIR_DOMAIN_DEVICE_HUB:
/src/qemu/qemu_validate.c: 6125 in qemuValidateDomainDeviceDef()
6119 return qemuValidateDomainRNGDef(dev->data.rng, def, qemuCaps);
6120
6121 case VIR_DOMAIN_DEVICE_REDIRDEV:
6122 return qemuValidateDomainRedirdevDef(dev->data.redirdev, def, qemuCaps);
6123
6124 case VIR_DOMAIN_DEVICE_WATCHDOG:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6125 return qemuValidateDomainWatchdogDef(dev->data.watchdog, def);
6126
6127 case VIR_DOMAIN_DEVICE_HOSTDEV:
6128 return qemuValidateDomainDeviceDefHostdev(dev->data.hostdev, def,
6129 qemuCaps);
6130
/src/qemu/qemu_validate.c: 6152 in qemuValidateDomainDeviceDef()
6146
6147 case VIR_DOMAIN_DEVICE_GRAPHICS:
6148 return qemuValidateDomainDeviceDefGraphics(dev->data.graphics, def,
6149 driver, qemuCaps);
6150
6151 case VIR_DOMAIN_DEVICE_INPUT:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6152 return qemuValidateDomainDeviceDefInput(dev->data.input, def, qemuCaps);
6153
6154 case VIR_DOMAIN_DEVICE_MEMBALLOON:
6155 return qemuValidateDomainDeviceDefMemballoon(dev->data.memballoon, qemuCaps);
6156
6157 case VIR_DOMAIN_DEVICE_IOMMU:
/src/qemu/qemu_validate.c: 6173 in qemuValidateDomainDeviceDef()
6167 return qemuValidateDomainDeviceDefHub(dev->data.hub, qemuCaps);
6168
6169 case VIR_DOMAIN_DEVICE_SOUND:
6170 return qemuValidateDomainDeviceDefSound(dev->data.sound, qemuCaps);
6171
6172 case VIR_DOMAIN_DEVICE_MEMORY:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6173 return qemuValidateDomainDeviceDefMemory(dev->data.memory, def, qemuCaps);
6174
6175 case VIR_DOMAIN_DEVICE_SHMEM:
6176 return qemuValidateDomainDeviceDefShmem(dev->data.shmem, qemuCaps);
6177
6178 case VIR_DOMAIN_DEVICE_AUDIO:
/src/qemu/qemu_validate.c: 6135 in qemuValidateDomainDeviceDef()
6129 qemuCaps);
6130
6131 case VIR_DOMAIN_DEVICE_VIDEO:
6132 return qemuValidateDomainDeviceDefVideo(dev->data.video, def, qemuCaps);
6133
6134 case VIR_DOMAIN_DEVICE_DISK:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6135 return qemuValidateDomainDeviceDefDisk(dev->data.disk, def, qemuCaps);
6136
6137 case VIR_DOMAIN_DEVICE_CONTROLLER:
6138 return qemuValidateDomainDeviceDefController(dev->data.controller, def,
6139 qemuCaps);
6140
/src/qemu/qemu_validate.c: 6122 in qemuValidateDomainDeviceDef()
6116 return qemuValidateDomainSmartcardDef(dev->data.smartcard, def, qemuCaps);
6117
6118 case VIR_DOMAIN_DEVICE_RNG:
6119 return qemuValidateDomainRNGDef(dev->data.rng, def, qemuCaps);
6120
6121 case VIR_DOMAIN_DEVICE_REDIRDEV:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6122 return qemuValidateDomainRedirdevDef(dev->data.redirdev, def, qemuCaps);
6123
6124 case VIR_DOMAIN_DEVICE_WATCHDOG:
6125 return qemuValidateDomainWatchdogDef(dev->data.watchdog, def);
6126
6127 case VIR_DOMAIN_DEVICE_HOSTDEV:
/src/qemu/qemu_validate.c: 6155 in qemuValidateDomainDeviceDef()
6149 driver, qemuCaps);
6150
6151 case VIR_DOMAIN_DEVICE_INPUT:
6152 return qemuValidateDomainDeviceDefInput(dev->data.input, def, qemuCaps);
6153
6154 case VIR_DOMAIN_DEVICE_MEMBALLOON:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6155 return qemuValidateDomainDeviceDefMemballoon(dev->data.memballoon, qemuCaps);
6156
6157 case VIR_DOMAIN_DEVICE_IOMMU:
6158 return qemuValidateDomainDeviceDefIOMMU(dev->data.iommu, def, qemuCaps);
6159
6160 case VIR_DOMAIN_DEVICE_FS:
/src/qemu/qemu_validate.c: 6119 in qemuValidateDomainDeviceDef()
6113 return qemuValidateDomainChrDef(dev->data.chr, def, qemuCaps);
6114
6115 case VIR_DOMAIN_DEVICE_SMARTCARD:
6116 return qemuValidateDomainSmartcardDef(dev->data.smartcard, def, qemuCaps);
6117
6118 case VIR_DOMAIN_DEVICE_RNG:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6119 return qemuValidateDomainRNGDef(dev->data.rng, def, qemuCaps);
6120
6121 case VIR_DOMAIN_DEVICE_REDIRDEV:
6122 return qemuValidateDomainRedirdevDef(dev->data.redirdev, def, qemuCaps);
6123
6124 case VIR_DOMAIN_DEVICE_WATCHDOG:
/src/qemu/qemu_validate.c: 6128 in qemuValidateDomainDeviceDef()
6122 return qemuValidateDomainRedirdevDef(dev->data.redirdev, def, qemuCaps);
6123
6124 case VIR_DOMAIN_DEVICE_WATCHDOG:
6125 return qemuValidateDomainWatchdogDef(dev->data.watchdog, def);
6126
6127 case VIR_DOMAIN_DEVICE_HOSTDEV:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6128 return qemuValidateDomainDeviceDefHostdev(dev->data.hostdev, def,
6129 qemuCaps);
6130
6131 case VIR_DOMAIN_DEVICE_VIDEO:
6132 return qemuValidateDomainDeviceDefVideo(dev->data.video, def, qemuCaps);
6133
/src/qemu/qemu_validate.c: 6132 in qemuValidateDomainDeviceDef()
6126
6127 case VIR_DOMAIN_DEVICE_HOSTDEV:
6128 return qemuValidateDomainDeviceDefHostdev(dev->data.hostdev, def,
6129 qemuCaps);
6130
6131 case VIR_DOMAIN_DEVICE_VIDEO:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6132 return qemuValidateDomainDeviceDefVideo(dev->data.video, def, qemuCaps);
6133
6134 case VIR_DOMAIN_DEVICE_DISK:
6135 return qemuValidateDomainDeviceDefDisk(dev->data.disk, def, qemuCaps);
6136
6137 case VIR_DOMAIN_DEVICE_CONTROLLER:
/src/qemu/qemu_validate.c: 6158 in qemuValidateDomainDeviceDef()
6152 return qemuValidateDomainDeviceDefInput(dev->data.input, def, qemuCaps);
6153
6154 case VIR_DOMAIN_DEVICE_MEMBALLOON:
6155 return qemuValidateDomainDeviceDefMemballoon(dev->data.memballoon, qemuCaps);
6156
6157 case VIR_DOMAIN_DEVICE_IOMMU:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6158 return qemuValidateDomainDeviceDefIOMMU(dev->data.iommu, def, qemuCaps);
6159
6160 case VIR_DOMAIN_DEVICE_FS:
6161 return qemuValidateDomainDeviceDefFS(dev->data.fs, def, qemuCaps);
6162
6163 case VIR_DOMAIN_DEVICE_NVRAM:
/src/qemu/qemu_validate.c: 6110 in qemuValidateDomainDeviceDef()
6104
6105 if (qemuValidateDomainDeviceInfo(dev, def, qemuCaps) < 0)
6106 return -1;
6107
6108 switch (dev->type) {
6109 case VIR_DOMAIN_DEVICE_NET:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6110 return qemuValidateDomainDeviceDefNetwork(dev->data.net, def, qemuCaps);
6111
6112 case VIR_DOMAIN_DEVICE_CHR:
6113 return qemuValidateDomainChrDef(dev->data.chr, def, qemuCaps);
6114
6115 case VIR_DOMAIN_DEVICE_SMARTCARD:
/src/qemu/qemu_validate.c: 6138 in qemuValidateDomainDeviceDef()
6132 return qemuValidateDomainDeviceDefVideo(dev->data.video, def, qemuCaps);
6133
6134 case VIR_DOMAIN_DEVICE_DISK:
6135 return qemuValidateDomainDeviceDefDisk(dev->data.disk, def, qemuCaps);
6136
6137 case VIR_DOMAIN_DEVICE_CONTROLLER:
>>> CID 910058: (USE_AFTER_FREE)
>>> Calling "glib_autoptr_cleanup_virQEMUCaps" frees pointer "qemuCapsLocal" which has already been freed.
6138 return qemuValidateDomainDeviceDefController(dev->data.controller, def,
6139 qemuCaps);
6140
6141 case VIR_DOMAIN_DEVICE_VSOCK:
6142 return qemuValidateDomainDeviceDefVsock(qemuCaps);
6143
Best regards,
The Coverity Scan Admin Team