qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v1][ 05/14] json-streamer: allow recovery after bad


From: Michael Roth
Subject: [Qemu-devel] [PATCH v1][ 05/14] json-streamer: allow recovery after bad input
Date: Wed, 1 Jun 2011 12:14:51 -0500

From: Anthony Liguori <address@hidden>

Once we detect a malformed message, make sure to reset our state.

Signed-off-by: Michael Roth <address@hidden>
---
 json-streamer.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/json-streamer.c b/json-streamer.c
index f7e7a68..549e9b7 100644
--- a/json-streamer.c
+++ b/json-streamer.c
@@ -51,8 +51,12 @@ static void json_message_process_token(JSONLexer *lexer, 
QString *token, JSONTok
 
     qlist_append(parser->tokens, dict);
 
-    if (parser->brace_count == 0 &&
-        parser->bracket_count == 0) {
+    if (parser->brace_count < 0 ||
+        parser->bracket_count < 0 ||
+        (parser->brace_count == 0 &&
+         parser->bracket_count == 0)) {
+        parser->brace_count = 0;
+        parser->bracket_count = 0;
         parser->emit(parser, parser->tokens);
         QDECREF(parser->tokens);
         parser->tokens = qlist_new();
-- 
1.7.0.4




reply via email to

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