From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Fix crashes with currtid() and currtid2() |
Date: | 2020-06-01 01:35:09 |
Message-ID: | E1jfZM5-0002HQ-SH@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix crashes with currtid() and currtid2()
A relation that has no storage initializes rd_tableam to NULL, which
caused those two functions to crash because of a pointer dereference.
Note that in 11 and older versions, this has always failed with a
confusing error "could not open file".
These two functions are used by the Postgres ODBC driver, which requires
them only when connecting to a backend strictly older than 8.1. When
connected to 8.2 or a newer version, the driver uses a RETURNING clause
instead whose support has been added in 8.2, so it should be possible to
just remove both functions in the future. This is left as an issue to
address later.
While on it, add more regression tests for those functions as we never
really had coverage for them, and for aggregates of TIDs.
Reported-by: Jaime Casanova, via sqlsmith
Author: Michael Paquier
Reviewed-by: Álvaro Herrera
Discussion: https://postgr.es/m/CAJGNTeO93u-5APMga6WH41eTZ3Uee9f3s8dCpA-GSSqNs1b=Ug@mail.gmail.com
Backpatch-through: 12
Branch
------
REL_12_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/95e389b3c2ea35ad60419f285fd5c1d0511142e7
Modified Files
--------------
src/backend/utils/adt/tid.c | 11 ++++
src/test/regress/expected/tid.out | 106 +++++++++++++++++++++++++++++++++++++
src/test/regress/parallel_schedule | 2 +-
src/test/regress/serial_schedule | 1 +
src/test/regress/sql/tid.sql | 63 ++++++++++++++++++++++
5 files changed, 182 insertions(+), 1 deletion(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2020-06-01 05:43:45 | pgsql: Fix use-after-release mistake in currtid() and currtid2() for vi |
Previous Message | Andrew Dunstan | 2020-05-31 22:37:17 | pgsql: Make install-tests target work with vpath builds |