hstore: Tighten key/value parsing check for whitespaces
Michael Paquier <michael@paquier.xyz>
hstore: Tighten key/value parsing check for whitespaces isspace() can be locale-sensitive depending on the platform, causing hstore to consider as whitespaces characters it should not see as such. For example, U+0105, being decoded as 0xC4 0x85 in UTF-8, would be discarded from the input given. This problem is similar to 9ae2661, though it was missed that hstore can also manipulate non-ASCII inputs, so replace the existing isspace() calls with scanner_isspace(). This problem exists for a long time, so backpatch all the way down. Author: Evan Jones Discussion: https://postgr.es/m/CA+HWA9awUW0+RV_gO9r1ABZwGoZxPztcJxPy8vMFSTbTfi4jig@mail.gmail.com Backpatch-through: 11
Files
| Path | Change | +/− |
|---|---|---|
| contrib/hstore/expected/hstore_utf8_1.out | added | +8 −0 |
| contrib/hstore/expected/hstore_utf8.out | added | +36 −0 |
| contrib/hstore/hstore_io.c | modified | +5 −4 |
| contrib/hstore/Makefile | modified | +1 −1 |
| contrib/hstore/meson.build | modified | +1 −0 |
| contrib/hstore/sql/hstore_utf8.sql | added | +19 −0 |
Discussion
- [PATCH] hstore: Fix parsing on Mac OS X: isspace() is locale specific 18 messages · 2023-06-05 → 2023-10-10