postgresql/contrib/btree_gist
Thomas Munro 7b5fc85bef 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:43:42 +13:00
..
data Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
expected Rename gist stratnum support function 2025-06-02 08:41:27 +02:00
sql Rename gist stratnum support function 2025-06-02 08:41:27 +02:00
.gitignore Support "make check" in contrib 2011-04-25 22:27:11 +03:00
btree_bit.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_bool.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_bytea.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_cash.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_date.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_enum.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_float4.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_float8.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_gist--1.0--1.1.sql Add index-only scan support to btree_gist. 2015-03-27 23:35:16 +02:00
btree_gist--1.1--1.2.sql Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
btree_gist--1.2--1.3.sql Add uuid to the set of types supported by contrib/btree_gist. 2016-11-29 14:08:34 -05:00
btree_gist--1.2.sql Handle contrib's GIN/GIST support function signature changes honestly. 2016-06-09 16:44:25 -04:00
btree_gist--1.3--1.4.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
btree_gist--1.4--1.5.sql Add btree_gist support for enum types. 2017-03-21 10:43:27 -04:00
btree_gist--1.5--1.6.sql Update btree_gist extension for parallel query 2020-07-20 13:59:50 +03:00
btree_gist--1.6--1.7.sql Fix gist_bool_ops to use gbtreekey2 2021-11-08 01:14:55 +01:00
btree_gist--1.7--1.8.sql btree_gist: Merge the last two versions into version 1.8 2025-07-10 12:23:30 +09:00
btree_gist.c Rename gist stratnum support function 2025-06-02 08:41:27 +02:00
btree_gist.control btree_gist: Merge the last two versions into version 1.8 2025-07-10 12:23:30 +09:00
btree_gist.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
btree_inet.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_int2.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_int4.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_int8.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_interval.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_macaddr.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_macaddr8.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_numeric.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_oid.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_text.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_time.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_ts.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_utils_num.c Remove useless casts to (void *) in arguments of some system functions 2023-02-07 06:57:59 +01:00
btree_utils_num.h Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
btree_utils_var.c Replace pg_mblen() with bounds-checked versions. 2026-02-09 12:43:42 +13:00
btree_utils_var.h Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
btree_uuid.c Add support for sorted gist index builds to btree_gist 2025-04-03 13:46:35 +03:00
Makefile btree_gist: Merge the last two versions into version 1.8 2025-07-10 12:23:30 +09:00
meson.build btree_gist: Merge the last two versions into version 1.8 2025-07-10 12:23:30 +09:00