• Bruce Momjian's avatar
    Well, after persuading cvsup and cvs that it _is_ possible to have local · 0ed7864d
    Bruce Momjian authored
    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@yourname.com),
                       From    => q(me@here.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';
    
    Alex Pilosov
    0ed7864d
plperl.c 66.7 KB