jsonapi: fully initialize dummy lexer
authorPeter Eisentraut <[email protected]>
Thu, 17 Oct 2024 06:23:46 +0000 (08:23 +0200)
committerPeter Eisentraut <[email protected]>
Thu, 17 Oct 2024 06:23:46 +0000 (08:23 +0200)
Valgrind reports that checks on lex->inc_state are undefined for the
"dummy lexer" used for incremental parsing, since it's only partially
initialized on the stack. This was introduced in 0785d1b8b2.
Zero-initialize the whole struct.

Author: Jacob Champion <[email protected]>
Reported-by: Alexander Lakhin <[email protected]>
Discussion: https://www.postgresql.org/message-id/CAOYmi+n9QWr4gsAADZc6qFQjFViXQYVk=gBy_EvxuqsgPJcb_g@mail.gmail.com

src/common/jsonapi.c

index 45838d8a1841971a0e6c2964d9f34219a652802b..ca4ecd571ef6a3df33082b78215430aa5e607470 100644 (file)
@@ -1536,7 +1536,7 @@ json_lex(JsonLexContext *lex)
                jsonapi_StrValType *ptok = &(lex->inc_state->partial_token);
                size_t          added = 0;
                bool            tok_done = false;
-               JsonLexContext dummy_lex;
+               JsonLexContext dummy_lex = {0};
                JsonParseErrorType partial_result;
 
                if (ptok->data[0] == '"')