From 495bf507eaf0eab638d3cf89a8854d23824b319e Mon Sep 17 00:00:00 2001 Message-Id: <495bf507eaf0eab638d3cf89a8854d23824b319e@dist-git> From: John Ferlan Date: Wed, 27 Aug 2014 14:27:07 -0400 Subject: [PATCH] cpu_x86: Resolve Coverity RESOURCE_LEAK Coverity determined that the copied 'oldguest' would be leaked for both error and success paths. (cherry picked from commit be7b82a283bc789da6cf9edc413ea399636b97b8) https://bugzilla.redhat.com/show_bug.cgi?id=1185458 Signed-off-by: Jiri Denemark --- src/cpu/cpu_x86.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 7bd8acb..4e77550 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1940,8 +1940,9 @@ static int x86UpdateHostModel(virCPUDefPtr guest, const virCPUDefPtr host) { - virCPUDefPtr oldguest; + virCPUDefPtr oldguest = NULL; size_t i; + int ret = -1; guest->match = VIR_CPU_MATCH_EXACT; @@ -1953,20 +1954,24 @@ x86UpdateHostModel(virCPUDefPtr guest, /* update the host model according to the desired configuration */ if (!(oldguest = virCPUDefCopy(guest))) - return -1; + goto cleanup; virCPUDefFreeModel(guest); if (virCPUDefCopyModel(guest, host, true) < 0) - return -1; + goto cleanup; for (i = 0; i < oldguest->nfeatures; i++) { if (virCPUDefUpdateFeature(guest, oldguest->features[i].name, oldguest->features[i].policy) < 0) - return -1; + goto cleanup; } - return 0; + ret = 0; + + cleanup: + virCPUDefFree(oldguest); + return ret; } -- 2.2.2