I wrote:
> Another thing that seems a bit risky is that plperl_func_handler sets up
> current_call_data as a pointer to a mostly-zeroed struct and then does
> assorted things that could throw error. That would leave a dangling
> value of current_call_data ...
Meh, scratch that --- I missed that the caller of plperl_func_handler is
where there's a PG_TRY block that's responsible for restoring the old
value of current_call_data. It would still be interesting to nose
around and see what's in *current_call_data, as well as any of the
pointed-to data structures that exist.
regards, tom lane