Re: BUG #17462: Invalid memory access in heapam_tuple_lock

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: anisimow.d@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2022-04-11T19:59:30Z
Lists: pgsql-bugs
Andres Freund <andres@anarazel.de> writes:
> On 2022-04-11 15:25:12 -0400, Tom Lane wrote:
>> That seems like a fairly clean idea, although I think we can't use it
>> in the back branches without an ABI break.  We're not going to find a
>> TID's worth of padding space in struct SnapshotData.

> I guess we could put members of SnapshotData into a union with ItemPointerData
> that aren't used by InitDirtySnapshot()/HeapTupleSatisfiesDirty().

Yeah, that could work.  You want to draft a patch, or shall I?

			regards, tom lane



Commits

  1. Prevent access to no-longer-pinned buffer in heapam_tuple_lock().

  2. Add Valgrind buffer access instrumentation.

  3. tableam: Add tuple_{insert, delete, update, lock} and use.