From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54873) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9zEb-0006Rv-93 for qemu-devel@nongnu.org; Fri, 18 Dec 2015 12:54:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a9zEZ-0008HA-Ep for qemu-devel@nongnu.org; Fri, 18 Dec 2015 12:54:29 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38723) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9zEZ-0008H3-75 for qemu-devel@nongnu.org; Fri, 18 Dec 2015 12:54:27 -0500 From: Eduardo Habkost Date: Fri, 18 Dec 2015 15:54:19 -0200 Message-Id: <1450461259-11488-2-git-send-email-ehabkost@redhat.com> In-Reply-To: <1450461259-11488-1-git-send-email-ehabkost@redhat.com> References: <1450461259-11488-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PULL 1/1] numa: Clean up query-memdev error handling List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Paolo Bonzini , qemu-devel@nongnu.org, Markus Armbruster From: Markus Armbruster qmp_query_memdev() has two error paths: * When object_get_objects_root() returns null. It never does, so simply drop the useless error handling. * When query_memdev() fails. It leaks err then. But any failure there is actually a programming error. Switch it to &error_abort, and drop the useless error handling. Messed up in commit 76b5d85 "qmp: add query-memdev". Signed-off-by: Markus Armbruster Reviewed-by: Eduardo Habkost Signed-off-by: Eduardo Habkost --- numa.c | 59 ++++++++++------------------------------------------------- 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/numa.c b/numa.c index fdfe294..1710946 100644 --- a/numa.c +++ b/numa.c @@ -517,7 +517,6 @@ static int query_memdev(Object *obj, void *opaque) { MemdevList **list = opaque; MemdevList *m = NULL; - Error *err = NULL; if (object_dynamic_cast(obj, TYPE_MEMORY_BACKEND)) { m = g_malloc0(sizeof(*m)); @@ -525,72 +524,34 @@ static int query_memdev(Object *obj, void *opaque) m->value = g_malloc0(sizeof(*m->value)); m->value->size = object_property_get_int(obj, "size", - &err); - if (err) { - goto error; - } - + &error_abort); m->value->merge = object_property_get_bool(obj, "merge", - &err); - if (err) { - goto error; - } - + &error_abort); m->value->dump = object_property_get_bool(obj, "dump", - &err); - if (err) { - goto error; - } - + &error_abort); m->value->prealloc = object_property_get_bool(obj, - "prealloc", &err); - if (err) { - goto error; - } - + "prealloc", + &error_abort); m->value->policy = object_property_get_enum(obj, "policy", "HostMemPolicy", - &err); - if (err) { - goto error; - } - + &error_abort); object_property_get_uint16List(obj, "host-nodes", - &m->value->host_nodes, &err); - if (err) { - goto error; - } + &m->value->host_nodes, + &error_abort); m->next = *list; *list = m; } return 0; -error: - g_free(m->value); - g_free(m); - - return -1; } MemdevList *qmp_query_memdev(Error **errp) { - Object *obj; + Object *obj = object_get_objects_root(); MemdevList *list = NULL; - obj = object_get_objects_root(); - if (obj == NULL) { - return NULL; - } - - if (object_child_foreach(obj, query_memdev, &list) != 0) { - goto error; - } - + object_child_foreach(obj, query_memdev, &list); return list; - -error: - qapi_free_MemdevList(list); - return NULL; } -- 2.1.0