On Sun, Feb 14, 2010 at 10:14:28PM -0500, Andrew Dunstan wrote: > > Robert Haas wrote: > >We're down to 5 patches remaining, and 1 day remaining, so it's time > >to try to wrap things up. > > > >* Package namespace and Safe init cleanup for plperl. Andrew Dunstan > >is taking care of this one, I believe. > > I will get this in, with changes as discussed recently.
Here's a small extra patch for your consideration. It addresses a couple of minor loose-ends in plperl: - move on_proc_exit() call to after the plperl_*_init() calls so on_proc_exit will only be called if plperl_*_init() succeeds (else there's a risk of on_proc_exit consuming all the exit hook slots) - don't allow use of Safe version 2.21 as that's broken for PL/Perl. Tim.
commit d8c0d4e63c00606db95f95a9c8f2b7ccf3c819b3 Author: Tim Bunce <tim.bu...@pobox.com> Date: Mon Feb 15 11:18:07 2010 +0000 Move on_proc_exit to after init (that may fail). Avoid Safe 2.21. diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c index e950222..16d74a7 100644 --- a/src/pl/plperl/plperl.c +++ b/src/pl/plperl/plperl.c @@ -365,8 +365,6 @@ select_perl_context(bool trusted) { /* first actual use of a perl interpreter */ - on_proc_exit(plperl_fini, 0); - if (trusted) { plperl_trusted_init(); @@ -379,6 +377,10 @@ select_perl_context(bool trusted) plperl_untrusted_interp = plperl_held_interp; interp_state = INTERP_UNTRUSTED; } + + /* successfully initialized, so arrange for cleanup */ + on_proc_exit(plperl_fini, 0); + } else { @@ -685,8 +687,9 @@ plperl_trusted_init(void) /* * Reject too-old versions of Safe and some others: * 2.20: http://rt.perl.org/rt3/Ticket/Display.html?id=72068 + * 2.21: http://rt.perl.org/rt3/Ticket/Display.html?id=72700 */ - if (safe_version_x100 < 209 || safe_version_x100 == 220) + if (safe_version_x100 < 209 || safe_version_x100 == 220 || safe_version_x100 == 221) { /* not safe, so disallow all trusted funcs */ eval_pv(PLC_SAFE_BAD, FALSE);
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers