⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 safe3.t

📁 source of perl for linux application,
💻 T
字号:
#!perlBEGIN {    if ($ENV{PERL_CORE}) {	chdir 't' if -d 't';	@INC = '../lib';    }    require Config; import Config;    if ($Config{'extensions'} !~ /\bOpcode\b/	&& $Config{'extensions'} !~ /\bPOSIX\b/	&& $Config{'osname'} ne 'VMS')    {	print "1..0\n";	exit 0;    }}use strict;use warnings;use POSIX qw(ceil);use Test::More tests => 2;use Safe;my $safe = new Safe;$safe->deny('add');my $masksize = ceil( Opcode::opcodes / 8 );# Attempt to change the opmask from within the safe compartment$safe->reval( qq{\$_[1] = qq/\0/ x } . $masksize );# Check that it didn't work$safe->reval( q{$x + $y} );like( $@, qr/^'?addition \(\+\)'? trapped by operation mask/,	    'opmask still in place with reval' );my $safe2 = new Safe;$safe2->deny('add');open my $fh, '>nasty.pl' or die "Can't write nasty.pl: $!\n";print $fh <<EOF;\$_[1] = "\0" x $masksize;EOFclose $fh;$safe2->rdo('nasty.pl');$safe2->reval( q{$x + $y} );like( $@, qr/^'?addition \(\+\)'? trapped by operation mask/,	    'opmask still in place with rdo' );END { unlink 'nasty.pl' }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -