From: | Alex Pilosov <alex(at)pilosoft(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | [PATCH] untrusted plperl |
Date: | 2001-06-17 00:02:25 |
Message-ID: | Pine.BSO.4.10.10106161941440.17529-200000@spider.pilosoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Well, after persuading cvsup and cvs that it _is_ possible to have local
modifiable repositories, I have a clean untrusted plperl patch to offer
you :)
Highlights:
* There's one perl interpreter used for both trusted and untrusted
procedures. I do think its unnecessary to keep two perl
interpreters around. If someone can break out from trusted "Safe" perl
mode, well, they can do what they want already. If someone disagrees, I
can change this.
* Opcode is not statically loaded anymore. Instead, we load Dynaloader,
which then can grab Opcode (and anything else you can 'use') on its own.
* Checked to work on FreeBSD 4.3 + perl 5.5.3 , OpenBSD 2.8 + perl5.6.1,
RedHat 6.2 + perl 5.5.3
* Uses ExtUtils::Embed to find what options are necessary to link with
perl shared libraries
* createlang is also updated, it can create untrusted perl using 'plperlu'
* Example script (assuming you have Mail::Sendmail installed):
create function foo() returns text as '
use Mail::Sendmail;
%mail = ( To => q(you(at)yourname(dot)com),
From => q(me(at)here(dot)com),
Message => "This is a very short message"
);
sendmail(%mail) or die $Mail::Sendmail::error;
return "OK. Log says:\n", $Mail::Sendmail::log;
' language 'plperlu';
(well, change the name in the To: line :)
Hope someone finds that useful and maybe even merged :)
-alex
Attachment | Content-Type | Size |
---|---|---|
plperlu.diff | text/plain | 7.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alex Pilosov | 2001-06-17 00:10:11 | Re: RTLD_GLOBAL on openbsd |
Previous Message | Trond Eivind Glomsrød | 2001-06-16 20:49:33 | Re: postgres dies while doing vacuum analyze |