pgsql: amcheck: Fix a few bugs in new update chain validation.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: amcheck: Fix a few bugs in new update chain validation.
Date: 2023-03-23 17:03:13
Message-ID: E1pfOLJ-0050wE-28@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

amcheck: Fix a few bugs in new update chain validation.

We shouldn't set successor[whatever] to an offset number that is less
than FirstOffsetNumber or more than maxoff. We already avoided that
for redirects, but not for CTID links. Allowing bad offset numbers
into the successor[] array causes core dumps.

We shouldn't use HeapTupleHeaderIsHotUpdated() because it checks
stuff other than the status of the infomask2 bit HEAP_HOT_UPDATED.
We only care about the status of that bit, not the other stuff
that HeapTupleHeaderIsHotUpdated() checks. This mistake can cause
verify_heapam() to report corruption when none is present.

The first hunk of this patch was written by me. The other two were
written by Andres Freund. This could probably do with more review
before commit, but I'd like to try to get the buildfarm green again
sooner rather than later.

Discussion: http://postgr.es/m/20230322204552.s6cv3ybqkklhhybb@awork3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/949e2e7c4f680ef86e93500ba4bee563ae4ce78e

Modified Files
--------------
contrib/amcheck/verify_heapam.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Jeff Davis 2023-03-23 17:09:50 pgsql: Handle the "und" locale in ICU versions 54 and older.
Previous Message Tom Lane 2023-03-23 17:01:59 pgsql: Add missing "-I." flag when building pg_bsd_indent.