postgresql/contrib/hstore
Thomas Munro d837fb0292 Replace pg_mblen() with bounds-checked versions.
A corrupted string could cause code that iterates with pg_mblen() to
overrun its buffer.  Fix, by converting all callers to one of the
following:

1. Callers with a null-terminated string now use pg_mblen_cstr(), which
raises an "illegal byte sequence" error if it finds a terminator in the
middle of the sequence.

2. Callers with a length or end pointer now use either
pg_mblen_with_len() or pg_mblen_range(), for the same effect, depending
on which of the two seems more convenient at each site.

3. A small number of cases pre-validate a string, and can use
pg_mblen_unbounded().

The traditional pg_mblen() function and COPYCHAR macro still exist for
backward compatibility, but are no longer used by core code and are
hereby deprecated.  The same applies to the t_isXXX() functions.

Security: CVE-2026-2006
Backpatch-through: 14
Co-authored-by: Thomas Munro <thomas.munro@gmail.com>
Co-authored-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Reported-by: Paul Gerste (as part of zeroday.cloud)
Reported-by: Moritz Sanft (as part of zeroday.cloud)
2026-02-09 12:29:15 +13:00
..
data Add GIN support for pg_trgm. From Guillaume Smet <guillaume.smet@gmail.com> 2007-03-14 14:21:53 +00:00
expected hstore: Tighten key/value parsing check for whitespaces 2023-06-12 09:14:03 +09:00
sql hstore: Tighten key/value parsing check for whitespaces 2023-06-12 09:14:03 +09:00
.gitignore Support "make check" in contrib 2011-04-25 22:27:11 +03:00
hstore--1.1--1.2.sql Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
hstore--1.2--1.3.sql Introduce jsonb, a structured format for storing json. 2014-03-23 16:40:19 -04:00
hstore--1.3--1.4.sql Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
hstore--1.4--1.5.sql Distinguish selectivity of < from <= and > from >=. 2017-09-13 11:12:39 -04:00
hstore--1.4.sql Update extensions with GIN/GIST support for parallel query. 2016-06-14 13:34:37 -04:00
hstore--1.5--1.6.sql Add a 64-bit hash function for type hstore. 2018-11-23 13:37:34 -05:00
hstore--1.6--1.7.sql Improve selectivity estimation for assorted match-style operators. 2020-04-01 10:32:33 -04:00
hstore--1.7--1.8.sql Remove deprecated containment operators for contrib types. 2021-03-05 10:45:41 -05:00
hstore.control Allow subscripting of hstore values. 2020-12-11 18:58:21 -05:00
hstore.h Fix final warnings produced by -Wshadow=compatible-local 2022-10-07 13:13:27 +13:00
hstore_compat.c Fix most -Wundef warnings 2019-10-19 18:31:38 +02:00
hstore_gin.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
hstore_gist.c Remove useless casts to (void *) in arguments of some system functions 2023-02-07 06:57:59 +01:00
hstore_io.c Replace pg_mblen() with bounds-checked versions. 2026-02-09 12:29:15 +13:00
hstore_op.c Fix incorrect uses of Datum conversion macros 2022-09-05 13:30:44 +02:00
hstore_subs.c Update copyright for 2023 2023-01-02 15:00:37 -05:00
Makefile hstore: Tighten key/value parsing check for whitespaces 2023-06-12 09:14:03 +09:00
meson.build hstore: Tighten key/value parsing check for whitespaces 2023-06-12 09:14:03 +09:00