• Andres Freund's avatar
    Fix potential use-after-free for BEFORE UPDATE row triggers on non-core AMs. · 75e03eab
    Andres Freund authored
    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
    75e03eab
trigger.c 187 KB