• Tom Lane's avatar
    Fix bogus CALLED_AS_TRIGGER() defenses. · 6dd9f357
    Tom Lane authored
    contrib/lo's lo_manage() thought it could use
    trigdata->tg_trigger->tgname in its error message about
    not being called as a trigger.  That naturally led to a core dump.
    
    unique_key_recheck() figured it could Assert that fcinfo->context
    is a TriggerData node in advance of having checked that it's
    being called as a trigger.  That's harmless in production builds,
    and perhaps not that easy to reach in any case, but it's logically
    wrong.
    
    The first of these per bug #16340 from William Crowell;
    the second from manual inspection of other CALLED_AS_TRIGGER
    call sites.
    
    Back-patch the lo.c change to all supported branches, the
    other to v10 where the thinko crept in.
    
    Discussion: https://postgr.es/m/16340-591c7449dc7c8c47@postgresql.org
    6dd9f357
constraint.c 6.51 KB