]> git.proxmox.com Git - qemu.git/commitdiff
qapi: fail hard on stack imbalance
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 22 Mar 2012 11:51:04 +0000 (12:51 +0100)
committerLuiz Capitulino <lcapitulino@redhat.com>
Tue, 27 Mar 2012 12:13:39 +0000 (09:13 -0300)
QmpOutputVisitor will segfault if an imbalanced end function is
called.  So we can abort in QmpInputVisitor too.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
qapi/qmp-input-visitor.c

index e6b6152e089aa1cb30c7587e6b4cdafcbc54562f..b4013ccfc531664bb304210da3e3d6cee5c2f480 100644 (file)
@@ -77,11 +77,8 @@ static void qmp_input_push(QmpInputVisitor *qiv, const QObject *obj, Error **err
 
 static void qmp_input_pop(QmpInputVisitor *qiv, Error **errp)
 {
+    assert(qiv->nb_stack > 0);
     qiv->nb_stack--;
-    if (qiv->nb_stack < 0) {
-        error_set(errp, QERR_BUFFER_OVERRUN);
-        return;
-    }
 }
 
 static void qmp_input_start_struct(Visitor *v, void **obj, const char *kind,