mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
conf: fix crash when hotplug a channel chr device with no target
https://bugzilla.redhat.com/show_bug.cgi?id=1181408
When we try to hotplug a channel chr device with no target, we
will get success (which should fail) in virDomainChrDefParseXML,
because we use goto cleanup this place and return an incomplete
definition (with no target). In qemuDomainAttachChrDevice,
we add it to the domain definition, but fail to remove it from
there when chardev-add fails, because virDomainChrRemove
matches chardevices according to the target name.
The device definition is then freed in qemuDomainAttachDeviceFlags,
leaving a stale pointer in the domain definition.
Signed-off-by: Luyao Huang <lhuang@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit fba7173f72
)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
12496319a2
commit
5443a58d6b
@ -8138,7 +8138,7 @@ virDomainChrDefParseXML(xmlXPathContextPtr ctxt,
|
||||
|
||||
if (!seenTarget &&
|
||||
((def->targetType = virDomainChrDefaultTargetType(def->deviceType)) < 0))
|
||||
goto cleanup;
|
||||
goto error;
|
||||
|
||||
if (virDomainChrSourceDefParseXML(&def->source, node->children, flags, def,
|
||||
ctxt, vmSeclabels, nvmSeclabels) < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user