From 66aaaf1af42d6f1e9f9b75bd1514c0c097e244e6 Mon Sep 17 00:00:00 2001 From: Jiri Denemark <jdenemar@redhat.com> Date: Fri, 25 Mar 2011 16:45:45 +0100 Subject: [PATCH 2/2] daemon: Avoid resetting errors before they are reported https://bugzilla.redhat.com/show_bug.cgi?id=690733 Commit f44bfb7 was supposed to make sure no additional libvirt API (esp. *Free) is called before remoteDispatchConnError() is called on error. However, the patch missed two instances. (cherry picked from commit 55cc591fc18e87b29febf78dc5b424b7c12f7349) --- daemon/remote.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/daemon/remote.c b/daemon/remote.c index abf9cf3..8a25f05 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -4531,12 +4531,13 @@ remoteDispatchStoragePoolListVolumes (struct qemud_server *server ATTRIBUTE_UNUS ret->names.names_len = virStoragePoolListVolumes (pool, ret->names.names_val, args->maxnames); - virStoragePoolFree(pool); if (ret->names.names_len == -1) { VIR_FREE(ret->names.names_val); remoteDispatchConnError(rerr, conn); + virStoragePoolFree(pool); return -1; } + virStoragePoolFree(pool); return 0; } @@ -4560,11 +4561,12 @@ remoteDispatchStoragePoolNumOfVolumes (struct qemud_server *server ATTRIBUTE_UNU } ret->num = virStoragePoolNumOfVolumes (pool); - virStoragePoolFree(pool); if (ret->num == -1) { remoteDispatchConnError(rerr, conn); + virStoragePoolFree(pool); return -1; } + virStoragePoolFree(pool); return 0; } -- 1.7.3.4