json: Don't create JSON_ERROR tokens that won't be used

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180823164025.12553-37-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2018-08-23 18:40:03 +02:00
parent ff281a272f
commit 269e57ae28

View File

@ -56,6 +56,8 @@ void json_message_process_token(JSONLexer *lexer, GString *input,
case JSON_RSQUARE: case JSON_RSQUARE:
parser->bracket_count--; parser->bracket_count--;
break; break;
case JSON_ERROR:
goto out_emit;
default: default:
break; break;
} }
@ -71,10 +73,6 @@ void json_message_process_token(JSONLexer *lexer, GString *input,
g_queue_push_tail(parser->tokens, token); g_queue_push_tail(parser->tokens, token);
if (type == JSON_ERROR) {
goto out_emit;
}
if (parser->brace_count < 0 || if (parser->brace_count < 0 ||
parser->bracket_count < 0 || parser->bracket_count < 0 ||
(parser->brace_count == 0 && (parser->brace_count == 0 &&