Re: Bug in jsonb_in function (14 & 15 version are affected)
Yura Sokolov <y.sokolov@postgrespro.ru>
From: Yura Sokolov <y.sokolov@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-03-16T05:18:01Z
Lists: pgsql-hackers
Attachments
- 0001-Refactor-JSON-lexer-error-reporting.patch (text/x-patch) patch 0001
В Пн, 13/03/2023 в 13:58 -0400, Tom Lane пишет: > Nikolay Shaplov <dhyan@nataraj.su> writes: > > I found a bug in jsonb_in function (it converts json from sting representation > > into jsonb internal representation). > > Yeah. Looks like json_lex_string is failing to honor the invariant > that it needs to set token_terminator ... although the documentation > of the function certainly isn't helping. I think we need the attached. > > A nice side benefit is that the error context reports get a lot more > useful --- somebody should have inquired before as to why they were > so bogus. > > regards, tom lane > Good day, Tom and all. Merged patch looks like start of refactoring. Colleague (Nikita Glukhov) propose further refactoring of jsonapi.c: - use of inline functions instead of macroses, - more uniform their usage in token success or error reporting, - simplify json_lex_number and its usage a bit. Also he added tests for fixed bug. ----- Regards, Yura Sokolov.
Commits
-
Fix JSON error reporting for many cases of erroneous string values.
- c25a929a6c88 12.15 landed
- 74a1a36d755b 15.3 landed
- 52e9a781656e 13.11 landed
- 25a7812cd086 16.0 landed
- 234941a3bbf3 11.20 landed
- 0ee9d685dd80 14.8 landed