diff mbox

[v4,03/28] qemu-img: Don't leak errors when outputting JSON

Message ID 1463632874-28559-4-git-send-email-eblake@redhat.com
State New
Headers show

Commit Message

Eric Blake May 19, 2016, 4:40 a.m. UTC
If our JSON output ever encounters an error, we would just silently
leak the local variable.  Instead, assert that our usage won't fail.

Signed-off-by: Eric Blake <eblake@redhat.com>

---
v4: new patch (split out from v3 14/18)
---
 qemu-img.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Markus Armbruster June 1, 2016, 3:25 p.m. UTC | #1
Eric Blake <eblake@redhat.com> writes:

> If our JSON output ever encounters an error, we would just silently
> leak the local variable.  Instead, assert that our usage won't fail.

Suggest "leak the error object".  Can do on commit.

> Signed-off-by: Eric Blake <eblake@redhat.com>
diff mbox

Patch

diff --git a/qemu-img.c b/qemu-img.c
index b4f93ce..3aa7fb3 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -479,12 +479,11 @@  fail:

 static void dump_json_image_check(ImageCheck *check, bool quiet)
 {
-    Error *local_err = NULL;
     QString *str;
     QmpOutputVisitor *ov = qmp_output_visitor_new();
     QObject *obj;
     visit_type_ImageCheck(qmp_output_get_visitor(ov), NULL, &check,
-                          &local_err);
+                          &error_abort);
     obj = qmp_output_get_qobject(ov);
     str = qobject_to_json_pretty(obj);
     assert(str != NULL);
@@ -2170,12 +2169,11 @@  static void dump_snapshots(BlockDriverState *bs)

 static void dump_json_image_info_list(ImageInfoList *list)
 {
-    Error *local_err = NULL;
     QString *str;
     QmpOutputVisitor *ov = qmp_output_visitor_new();
     QObject *obj;
     visit_type_ImageInfoList(qmp_output_get_visitor(ov), NULL, &list,
-                             &local_err);
+                             &error_abort);
     obj = qmp_output_get_qobject(ov);
     str = qobject_to_json_pretty(obj);
     assert(str != NULL);
@@ -2187,11 +2185,11 @@  static void dump_json_image_info_list(ImageInfoList *list)

 static void dump_json_image_info(ImageInfo *info)
 {
-    Error *local_err = NULL;
     QString *str;
     QmpOutputVisitor *ov = qmp_output_visitor_new();
     QObject *obj;
-    visit_type_ImageInfo(qmp_output_get_visitor(ov), NULL, &info, &local_err);
+    visit_type_ImageInfo(qmp_output_get_visitor(ov), NULL, &info,
+                         &error_abort);
     obj = qmp_output_get_qobject(ov);
     str = qobject_to_json_pretty(obj);
     assert(str != NULL);