qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 03/10] qapi: fix memory leak on error


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 03/10] qapi: fix memory leak on error
Date: Thu, 22 Mar 2012 15:17:30 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2

On 03/22/2012 06:51 AM, Paolo Bonzini wrote:
QmpInputVisitor would leak the malloced struct if the stack was
overflowed.  This can be easily fixed using error_propagate.

Signed-off-by: Paolo Bonzini<address@hidden>

Reviewed-by: Anthony Liguori <address@hidden>

Regards,

Anthony Liguori

---
  qapi/qmp-input-visitor.c |    6 ++++--
  1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
index b4013cc..ef9288f 100644
--- a/qapi/qmp-input-visitor.c
+++ b/qapi/qmp-input-visitor.c
@@ -86,6 +86,7 @@ static void qmp_input_start_struct(Visitor *v, void **obj, 
const char *kind,
  {
      QmpInputVisitor *qiv = to_qiv(v);
      const QObject *qobj = qmp_input_get_object(qiv, name);
+    Error *err = NULL;

      if (!qobj || qobject_type(qobj) != QTYPE_QDICT) {
          error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
@@ -93,8 +94,9 @@ static void qmp_input_start_struct(Visitor *v, void **obj, 
const char *kind,
          return;
      }

-    qmp_input_push(qiv, qobj, errp);
-    if (error_is_set(errp)) {
+    qmp_input_push(qiv, qobj,&err);
+    if (err) {
+        error_propagate(errp, err);
          return;
      }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]