[libvirt] [PATCH] vbox: fix segfault on virsh dumpxml with the existence of USB filters

Ryota Ozaki ozaki.ryota at gmail.com
Mon Nov 18 15:39:55 UTC 2013


A USB filter is stored in a hostdev. The original code doesn't
allocate hostdev->info that is expected to be allocated with hostdev.
So use virDomainHostdevDefAlloc() to allocate both as we expect.

Signed-off-by: Ryota Ozaki <ozaki.ryota at gmail.com>
---
 src/vbox/vbox_tmpl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 3807a6d..f4cd5cf 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -3333,7 +3333,8 @@ sharedFoldersCleanup:
 
                                     deviceFilter->vtbl->GetActive(deviceFilter, &active);
                                     if (active) {
-                                        if (VIR_ALLOC(def->hostdevs[USBFilterCount]) >= 0) {
+                                        def->hostdevs[USBFilterCount] = virDomainHostdevDefAlloc();
+                                        if (def->hostdevs[USBFilterCount]) {
                                             PRUnichar *vendorIdUtf16  = NULL;
                                             char *vendorIdUtf8        = NULL;
                                             unsigned vendorId         = 0;
-- 
1.8.4




More information about the libvir-list mailing list