json-streamer: make sure to reset token_size after emitting a token list

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Anthony Liguori 2011-06-01 12:14:54 -05:00
parent 29c75ddd87
commit eca7db46ff
2 changed files with 3 additions and 0 deletions

View file

@ -65,6 +65,7 @@ static void json_message_process_token(JSONLexer *lexer, QString *token, JSONTok
parser->emit(parser, parser->tokens); parser->emit(parser, parser->tokens);
QDECREF(parser->tokens); QDECREF(parser->tokens);
parser->tokens = qlist_new(); parser->tokens = qlist_new();
parser->token_size = 0;
} else if (parser->token_size > MAX_TOKEN_SIZE || } else if (parser->token_size > MAX_TOKEN_SIZE ||
parser->bracket_count > MAX_NESTING || parser->bracket_count > MAX_NESTING ||
parser->brace_count > MAX_NESTING) { parser->brace_count > MAX_NESTING) {
@ -76,6 +77,7 @@ static void json_message_process_token(JSONLexer *lexer, QString *token, JSONTok
parser->emit(parser, parser->tokens); parser->emit(parser, parser->tokens);
QDECREF(parser->tokens); QDECREF(parser->tokens);
parser->tokens = qlist_new(); parser->tokens = qlist_new();
parser->token_size = 0;
} }
} }

View file

@ -24,6 +24,7 @@ typedef struct JSONMessageParser
int brace_count; int brace_count;
int bracket_count; int bracket_count;
QList *tokens; QList *tokens;
uint64_t token_size;
} JSONMessageParser; } JSONMessageParser;
void json_message_parser_init(JSONMessageParser *parser, void json_message_parser_init(JSONMessageParser *parser,