| 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: | Whole Thread | Raw Message | 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(+)
| 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 |