[libvirt] [PATCH] qemu:address:Fix segfault in qemuDomainPrimeVirtioDeviceAddresses

On aarch64, lauch vm with the follow configuration: <interface type="hostdev" managed="yes"> <mac address="fa:16:3e:14:41:00"/> <source> <address type="pci" domain="0x0000" bus="0x01" slot="0x0b" function="0x2"/> </source> </interface> libvirtd will crash when access the net->model. Signed-off-by: Wang Yechao <wang.yechao255@zte.com.cn> --- src/qemu/qemu_domain_address.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 24dd7c1..27c9bfb 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -324,7 +324,8 @@ qemuDomainPrimeVirtioDeviceAddresses(virDomainDefPtr def, for (i = 0; i < def->nnets; i++) { virDomainNetDefPtr net = def->nets[i]; - if (STREQ(net->model, "virtio") && + if (net->model && + STREQ(net->model, "virtio") && net->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { net->info.type = type; } -- 1.8.3.1

On Fri, 2018-11-09 at 14:41 +0800, Wang Yechao wrote:
On aarch64, lauch vm with the follow configuration:
<interface type="hostdev" managed="yes"> <mac address="fa:16:3e:14:41:00"/> <source> <address type="pci" domain="0x0000" bus="0x01" slot="0x0b" function="0x2"/> </source> </interface>
libvirtd will crash when access the net->model.
Signed-off-by: Wang Yechao <wang.yechao255@zte.com.cn> --- src/qemu/qemu_domain_address.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by: Andrea Bolognani <abologna@redhat.com> and pushed after slightly tweaking the commit message. -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Wang Yechao