On 9/19/25 12:15, Daniel P. Berrangé wrote:
With error_propagate, the stack trace from any error_abort/fatal
usage will start from the error_propagate() call, which is largely
useless. Using ERRP_GUARD ensures the stack trace starts from
the origin that reported the error.

Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
  qom/object_interfaces.c | 7 +++----
  1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index 1ffea1a728..415cbee8c5 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -24,13 +24,12 @@
  bool user_creatable_complete(UserCreatable *uc, Error **errp)
  {
      UserCreatableClass *ucc = USER_CREATABLE_GET_CLASS(uc);
-    Error *err = NULL;
+    ERRP_GUARD();
if (ucc->complete) {
-        ucc->complete(uc, &err);
-        error_propagate(errp, err);
+        ucc->complete(uc, errp);
      }
-    return !err;
+    return !*errp;
  }
bool user_creatable_can_be_deleted(UserCreatable *uc)

Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>

Paolo


Reply via email to