mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Fix bogus CALLED_AS_TRIGGER() defenses.
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
This commit is contained in:
@ -40,7 +40,7 @@
|
||||
Datum
|
||||
unique_key_recheck(PG_FUNCTION_ARGS)
|
||||
{
|
||||
TriggerData *trigdata = castNode(TriggerData, fcinfo->context);
|
||||
TriggerData *trigdata = (TriggerData *) fcinfo->context;
|
||||
const char *funcname = "unique_key_recheck";
|
||||
ItemPointerData checktid;
|
||||
ItemPointerData tmptid;
|
||||
|
Reference in New Issue
Block a user