From: Rafael Garcia-Suarez Date: Fri, 12 Oct 2007 07:41:18 +0000 (+0000) Subject: Share the internal XS functions defined in universal.c X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=096e1543c0e39bb253015dc55f8bedc6c90a5277;p=p5sagit%2Fp5-mst-13.2.git Share the internal XS functions defined in universal.c to Safe compartments p4raw-id: //depot/perl@32102 --- diff --git a/ext/Opcode/Safe.pm b/ext/Opcode/Safe.pm index f4d3558..fc3ff08 100644 --- a/ext/Opcode/Safe.pm +++ b/ext/Opcode/Safe.pm @@ -38,7 +38,55 @@ use Opcode 1.01, qw( my $default_root = 0; -my $default_share = ['*_']; #, '*main::']; +# share *_ and functions defined in universal.c +# Don't share stuff like *UNIVERSAL:: otherwise code from the +# compartment can 0wn functions in UNIVERSAL +my $default_share = [qw[ + *_ + &PerlIO::get_layers + &Regexp::DESTROY + &re::is_regexp + &re::regname + &re::regnames + &re::regnames_count + &Tie::Hash::NamedCapture::FETCH + &Tie::Hash::NamedCapture::STORE + &Tie::Hash::NamedCapture::DELETE + &Tie::Hash::NamedCapture::CLEAR + &Tie::Hash::NamedCapture::EXISTS + &Tie::Hash::NamedCapture::FIRSTKEY + &Tie::Hash::NamedCapture::NEXTKEY + &Tie::Hash::NamedCapture::SCALAR + &Tie::Hash::NamedCapture::flags + &UNIVERSAL::isa + &UNIVERSAL::can + &UNIVERSAL::DOES + &UNIVERSAL::VERSION + &utf8::is_utf8 + &utf8::valid + &utf8::encode + &utf8::decode + &utf8::upgrade + &utf8::downgrade + &utf8::native_to_unicode + &utf8::unicode_to_native + &version::() + &version::new + &version::("" + &version::stringify + &version::(0+ + &version::numify + &version::normal + &version::(cmp + &version::(<=> + &version::vcmp + &version::(bool + &version::boolean + &version::(nomethod + &version::noop + &version::is_alpha + &version::qv +]]; sub new { my($class, $root, $mask) = @_;