Re: [PATCH] json_lex_string: don't overread on bad UTF8
Jacob Champion <jacob.champion@enterprisedb.com>
From: Jacob Champion <jacob.champion@enterprisedb.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Peter Eisentraut <peter@eisentraut.org>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Andrew Dunstan <andrew@dunslane.net>
Date: 2024-05-08T14:01:08Z
Lists: pgsql-hackers
On Tue, May 7, 2024 at 10:31 PM Michael Paquier <michael@paquier.xyz> wrote: > But looking closer, I can see that in the JSON_INVALID_TOKEN case, > when !tok_done, we set token_terminator to point to the end of the > token, and that would include an incomplete byte sequence like in your > case. :/ Ah, I see what you're saying. Yeah, that approach would need some more invasive changes. > This situation makes me > uncomfortable and we should put more effort in printing error messages > in a readable format, but that could always be tackled later as a > separate problem.. And I don't see something backpatchable at short > sight for v16. Agreed. Fortunately (or unfortunately?) I think the JSON client-encoding work is now a prerequisite for OAuth in libpq, so hopefully some improvements can fall out of that work too. > Thoughts and/or objections? None here. Thanks! --Jacob
Commits
-
Fix overread in JSON parsing errors for incomplete byte sequences
- 377c25d32275 13.16 landed
- 41adf9d960c0 14.13 landed
- 8c3f30e675e9 15.8 landed
- 5396a2987cc6 16.4 landed
- 855517307db8 17.0 landed