diff --git a/src/capabilities.c b/src/capabilities.c index 193a9fe97324c0211857361d180651fdedc14a74..289180df077c25c5b600942299cd9424d0d2eb14 100644 --- a/src/capabilities.c +++ b/src/capabilities.c @@ -354,10 +354,6 @@ virCapabilitiesAddGuest(virCapsPtr caps, if (loader && (guest->arch.defaultInfo.loader = strdup(loader)) == NULL) goto no_memory; - if (nmachines) { - guest->arch.defaultInfo.nmachines = nmachines; - guest->arch.defaultInfo.machines = machines; - } if (VIR_REALLOC_N(caps->guests, caps->nguests + 1) < 0) @@ -365,6 +361,11 @@ virCapabilitiesAddGuest(virCapsPtr caps, caps->guests[caps->nguests] = guest; caps->nguests++; + if (nmachines) { + guest->arch.defaultInfo.nmachines = nmachines; + guest->arch.defaultInfo.machines = machines; + } + return guest; no_memory: @@ -407,10 +408,6 @@ virCapabilitiesAddGuestDomain(virCapsGuestPtr guest, if (loader && (dom->info.loader = strdup(loader)) == NULL) goto no_memory; - if (nmachines) { - dom->info.nmachines = nmachines; - dom->info.machines = machines; - } if (VIR_REALLOC_N(guest->arch.domains, guest->arch.ndomains + 1) < 0) @@ -418,6 +415,10 @@ virCapabilitiesAddGuestDomain(virCapsGuestPtr guest, guest->arch.domains[guest->arch.ndomains] = dom; guest->arch.ndomains++; + if (nmachines) { + dom->info.nmachines = nmachines; + dom->info.machines = machines; + } return dom; diff --git a/src/xm_internal.c b/src/xm_internal.c index dd44ce5f7d39efe25e213dd158fe55fa9e120458..2595a5e9a575d1cd1700e8cdeb391bac05fed98b 100644 --- a/src/xm_internal.c +++ b/src/xm_internal.c @@ -2046,6 +2046,9 @@ static int xenXMDomainConfigFormatNet(virConnectPtr conn, virBufferVSprintf(&buf, ",vifname=%s", net->ifname); + if (virBufferError(&buf)) + goto cleanup; + if (VIR_ALLOC(val) < 0) { virReportOOMError(conn); goto cleanup; diff --git a/tests/testutils.c b/tests/testutils.c index 7a1dbdcdd8edec7d744cddb111a7a799316c2ce6..5072fecb6bfe649ac68a4f7fd8314f1ede5ac926 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -367,10 +367,7 @@ int virtTestMain(int argc, } } - if (testOOM) - virAllocTestInit(); - - /* Run once to count allocs, and ensure it passes :-) */ + /* Run once to prime any static allocations & ensure it passes */ ret = (func)(argc, argv); if (ret != EXIT_SUCCESS) goto cleanup; @@ -385,6 +382,13 @@ int virtTestMain(int argc, testOOM++; virSetErrorFunc(NULL, virtTestErrorFuncQuiet); + virAllocTestInit(); + + /* Run again to count allocs, and ensure it passes :-) */ + ret = (func)(argc, argv); + if (ret != EXIT_SUCCESS) + goto cleanup; + approxAlloc = virAllocTestCount(); testCounter++; if (testDebug)