summaryrefslogtreecommitdiff
path: root/json-lexer.c
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2011-06-01 12:14:56 -0500
committerAnthony Liguori <aliguori@us.ibm.com>2011-06-07 13:52:11 -0500
commit529a0ef5f30e28a801d6527a3556adcaa4959669 (patch)
tree7ae5aeed813137dd9ccbf1f62ceb8e88b1b35480 /json-lexer.c
parent11e8a46cc3594567c6ba9b745f8f1b7d50be5b75 (diff)
downloadqemu-529a0ef5f30e28a801d6527a3556adcaa4959669.tar.gz
qemu-529a0ef5f30e28a801d6527a3556adcaa4959669.tar.bz2
qemu-529a0ef5f30e28a801d6527a3556adcaa4959669.zip
json-lexer: reset the lexer state on an invalid token
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'json-lexer.c')
-rw-r--r--json-lexer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/json-lexer.c b/json-lexer.c
index fe5a060d4d..a5bbe9e54d 100644
--- a/json-lexer.c
+++ b/json-lexer.c
@@ -305,6 +305,9 @@ static int json_lexer_feed_char(JSONLexer *lexer, char ch)
new_state = IN_START;
break;
case IN_ERROR:
+ QDECREF(lexer->token);
+ lexer->token = qstring_new();
+ new_state = IN_START;
return -EINVAL;
default:
break;