From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Avoid treating nonrequired nbtree keys as required. |
Date: | 2025-05-02 21:51:35 |
Message-ID: | E1uAyIB-000gJq-2x@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Avoid treating nonrequired nbtree keys as required.
Consistently prevent nbtree array advancement from treating a scankey as
required when operating in pstate.forcenonrequired mode. Otherwise, we
risk a NULL pointer dereference. This was possible in the path where
_bt_check_compare is called to recheck a tuple that advanced all of the
scan's arrays to matching values: its continuescan=false handling
expects _bt_advance_array_keys to have been called with a valid pstate,
but it'll always be NULL during sktrig_required=false calls (which is
how _bt_advance_array_keys must be called when pstate.forcenonrequired).
Oversight in commit 8a510275, which optimized nbtree search scan key
comparisons.
Author: Peter Geoghegan <pg(at)bowt(dot)ie>
Reported-By: Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
Discussion: https://postgr.es/m/CAHgHdKsn2W=gPBmj7p6MjQFvxB+zZDBkwTSg0o3f5Hh8rkRrsA@mail.gmail.com
Discussion: https://postgr.es/m/CAH2-WzmodSE+gpTd1CRGU9ez8ytyyDS+Kns2r9NzgUp1s56kpw@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/0f08df406822bfa697dbcabef55728a8cb3e7fdb
Modified Files
--------------
src/backend/access/nbtree/nbtutils.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2025-05-02 23:59:20 | pgsql: doc PG 18 relnotes: reword and reorder items |
Previous Message | Tomas Vondra | 2025-05-02 21:06:40 | pgsql: Fix memory leak in _gin_parallel_merge |