]> xenbits.xensource.com Git - libvirt.git/commitdiff
vbox: fix segfault on virsh dumpxml with the existence of USB filters
authorRyota Ozaki <ozaki.ryota@gmail.com>
Mon, 18 Nov 2013 15:39:55 +0000 (00:39 +0900)
committerLaine Stump <laine@laine.org>
Tue, 19 Nov 2013 14:19:26 +0000 (16:19 +0200)
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@gmail.com>
src/vbox/vbox_tmpl.c

index 3807a6d816f52e10ac452a661893075467d6a8ec..f4cd5cfc2e98472ba3e027d7d6bdb5b019d09198 100644 (file)
@@ -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;