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);
 | 
			
		||||
        QDECREF(parser->tokens);
 | 
			
		||||
        parser->tokens = qlist_new();
 | 
			
		||||
        parser->token_size = 0;
 | 
			
		||||
    } else if (parser->token_size > MAX_TOKEN_SIZE ||
 | 
			
		||||
               parser->bracket_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);
 | 
			
		||||
        QDECREF(parser->tokens);
 | 
			
		||||
        parser->tokens = qlist_new();
 | 
			
		||||
        parser->token_size = 0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,7 @@ typedef struct JSONMessageParser
 | 
			
		|||
    int brace_count;
 | 
			
		||||
    int bracket_count;
 | 
			
		||||
    QList *tokens;
 | 
			
		||||
    uint64_t token_size;
 | 
			
		||||
} JSONMessageParser;
 | 
			
		||||
 | 
			
		||||
void json_message_parser_init(JSONMessageParser *parser,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue