From: Marcel Apfelbaum <[email protected]>

A NULL value is not added to visitor's stack, but there
is no check for that when the visitor tries to return
that value, leading to QEMU crash.

Reviewed-by: Eric Blake <[email protected]>
Acked-by: Luiz Capitulino <[email protected]>
Signed-off-by: Marcel Apfelbaum <[email protected]>
Acked-by: Michael S. Tsirkin <[email protected]>
Acked-by: Michael Roth <[email protected]>
Signed-off-by: Andreas Färber <[email protected]>
---
 qapi/qmp-output-visitor.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/qapi/qmp-output-visitor.c b/qapi/qmp-output-visitor.c
index 74a5684..96b3384 100644
--- a/qapi/qmp-output-visitor.c
+++ b/qapi/qmp-output-visitor.c
@@ -66,6 +66,12 @@ static QObject *qmp_output_pop(QmpOutputVisitor *qov)
 static QObject *qmp_output_first(QmpOutputVisitor *qov)
 {
     QStackEntry *e = QTAILQ_LAST(&qov->stack, QStack);
+
+    /* FIXME - find a better way to deal with NULL values */
+    if (!e) {
+        return NULL;
+    }
+
     return e->value;
 }
 
-- 
1.8.4.5


Reply via email to