From: Marcel Apfelbaum <marce...@redhat.com> 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 <ebl...@redhat.com> Acked-by: Luiz Capitulino <lcapitul...@redhat.com> Signed-off-by: Marcel Apfelbaum <marce...@redhat.com> Acked-by: Michael S. Tsirkin <m...@redhat.com> Acked-by: Michael Roth <mdr...@linux.vnet.ibm.com> Signed-off-by: Andreas Färber <afaer...@suse.de> --- 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