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:
parent
29c75ddd87
commit
eca7db46ff
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user