summary refs log tree commit diff stats
path: root/qom/object_interfaces.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2016-04-28 11:05:37 +0100
committerPeter Maydell <peter.maydell@linaro.org>2016-04-28 11:05:37 +0100
commit736f85d5db701cc9d464a03b583d4a04606a0dd5 (patch)
treeb08061229b40f7b5d36f023f28b3c0e8c98ce604 /qom/object_interfaces.c
parent61861eff69279e20428c10be269ce1c1bba2c7b1 (diff)
parent51b9b478cc238ad23a78ffd713f9c18bbc3907e6 (diff)
downloadfocaccia-qemu-736f85d5db701cc9d464a03b583d4a04606a0dd5.tar.gz
focaccia-qemu-736f85d5db701cc9d464a03b583d4a04606a0dd5.zip
Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2016-04-28' into staging
Fix dangling pointers and error message regressions

# gpg: Signature made Thu 28 Apr 2016 07:25:51 BST using RSA key ID EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>"

* remotes/armbru/tags/pull-error-2016-04-28:
  qom: -object error messages lost location, restore it
  replay: Fix dangling location bug in replay_configure()
  QemuOpts: Fix qemu_opts_foreach() dangling location regression

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qom/object_interfaces.c')
-rw-r--r--qom/object_interfaces.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index ab5da35e4f..393189024f 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -170,6 +170,7 @@ int user_creatable_add_opts_foreach(void *opaque, QemuOpts *opts, Error **errp)
 {
     bool (*type_predicate)(const char *) = opaque;
     Object *obj = NULL;
+    Error *err = NULL;
     const char *type;
 
     type = qemu_opt_get(opts, "qom-type");
@@ -178,8 +179,9 @@ int user_creatable_add_opts_foreach(void *opaque, QemuOpts *opts, Error **errp)
         return 0;
     }
 
-    obj = user_creatable_add_opts(opts, errp);
+    obj = user_creatable_add_opts(opts, &err);
     if (!obj) {
+        error_report_err(err);
         return -1;
     }
     object_unref(obj);