pgsql: Fix potential use-after-free for BEFORE UPDATE row triggers on n

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix potential use-after-free for BEFORE UPDATE row triggers on n
Date: 2019-04-19 01:24:21
Message-ID: E1hHIGL-0008Fl-87@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix potential use-after-free for BEFORE UPDATE row triggers on non-core AMs.

When such a trigger returns the old row version, it naturally get
stored in the slot for the trigger result. When a table AMs doesn't
store HeapTuples internally, ExecBRUpdateTriggers() frees the old row
version passed to triggers - but before this fix it might still be
referenced by the slot holding the new tuple.

Noticed when running the out-of-core zheap AM against the in-core
version of tableam.

Author: Andres Freund

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/75e03eabeaac8fd229b14f74de55d0e1470903c4

Modified Files
--------------
src/backend/commands/trigger.c | 9 +++++++++
1 file changed, 9 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2019-04-19 06:56:50 pgsql: Remove dependency to pageinspect in recovery tests
Previous Message Tom Lane 2019-04-18 19:41:37 Re: pgsql: Fix plan created for inherited UPDATE/DELETE with all tables exc