From: Gonglei <arei.gong...@huawei.com> Avoid the caller of object_property_print() leaking string argument's memory, such as qdev_print_props() when encounter errors.
Cc: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Gonglei <arei.gong...@huawei.com> --- qom/object.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/qom/object.c b/qom/object.c index da0919a..74779e6 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1010,11 +1010,19 @@ char *object_property_print(Object *obj, const char *name, bool human, Error **errp) { StringOutputVisitor *mo; - char *string; + char *string = NULL; + Error *local_err = NULL; mo = string_output_visitor_new(human); - object_property_get(obj, string_output_get_visitor(mo), name, errp); + object_property_get(obj, string_output_get_visitor(mo), name, &local_err); + if (local_err) { + error_propagate(errp, local_err); + goto fail; + } + string = string_output_get_string(mo); + +fail: string_output_visitor_cleanup(mo); return string; } -- 1.7.12.4