Fix potential use-after-free for BEFORE UPDATE row triggers on non-core AMs.
Andres Freund <andres@anarazel.de>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/commands/trigger.c | modified | +9 −0 |