1
0
Fork 0
mirror of https://github.com/perlbot/perlbuut synced 2025-06-07 18:55:44 -04:00

This now allows for running other systems

This commit is contained in:
Ryan Voots 2017-05-05 00:31:20 -04:00
parent d6522bc3d8
commit 305a60fcae
2 changed files with 10 additions and 7 deletions

View file

@ -58,11 +58,14 @@ warn "Spawning Eval: $args->{code}\n";
$namespace->run(code => sub { $namespace->run(code => sub {
mount("tmpfs", $FindBin::Bin."/../jail/tmp", "tmpfs", 0, {size => "16m"}); mount("tmpfs", $FindBin::Bin."/../jail/tmp", "tmpfs", 0, {size => "16m"});
mount("tmpfs", $FindBin::Bin."/../jail/tmp", "tmpfs", MS_PRIVATE, {size => "16m"}); mount("tmpfs", $FindBin::Bin."/../jail/tmp", "tmpfs", MS_PRIVATE, {size => "16m"});
mount("/lib64", $FindBin::Bin."/../jail/lib64", undef, MS_PRIVATE|MS_BIND|MS_RDONLY, undef); mount("/lib64", $FindBin::Bin."/../jail/lib64", undef, MS_BIND|MS_PRIVATE|MS_RDONLY, undef);
mount("/usr", $FindBin::Bin."/../jail/usr", undef, MS_PRIVATE|MS_BIND|MS_RDONLY, undef); mount("/lib", $FindBin::Bin."/../jail/lib", undef, MS_BIND|MS_PRIVATE|MS_RDONLY, undef);
mount("/home/ryan/perl5", $FindBin::Bin."/../jail/perl5", undef, MS_PRIVATE|MS_BIND|MS_RDONLY, undef); mount("/usr/bin", $FindBin::Bin."/../jail/usr/bin", undef, MS_BIND|MS_PRIVATE|MS_RDONLY, undef);
mount("jail", $FindBin::Bin."/../jail", undef, MS_REMOUNT|MS_RDONLY, undef); mount("/usr/lib", $FindBin::Bin."/../jail/usr/lib", undef, MS_BIND|MS_PRIVATE|MS_RDONLY, undef);
mount("/home/ryan/perl5", $FindBin::Bin."/../jail/perl5", undef, MS_BIND|MS_PRIVATE|MS_RDONLY, undef);
#my $q = qx|ls -lh /home/ryan/bots/perlbuut/jail/perl5/perlbrew/perls/perl-5.18*/bin|;
#print $q;
system($^X, $filename); system($^X, $filename);
my ($exit, $signal) = (($?&0xFF00)>>8, $?&0xFF); my ($exit, $signal) = (($?&0xFF00)>>8, $?&0xFF);

View file

@ -533,9 +533,9 @@ Biqsip biqsip 'ugh chan ghitlh lursa' nuh bey' ngun petaq qeng soj tlhej waqboch
} }
'; ';
print STDERR "About to exec: ", $exec_map{'perl'.$version}{bin}, "\n";
unless ($version eq '4') { unless ($version eq '4') {
exec($exec_map{'perl'.$version}{bin}, '-e', $wrapper); exec($exec_map{'perl'.$version}{bin}, '-e', $wrapper) or die "Exec failed $!";
} else { } else {
exec($exec_map{'perl'.$version}{bin}, '-'); # the code for perl4 is actually still in STDIN, if we try to -e it needs to write files exec($exec_map{'perl'.$version}{bin}, '-'); # the code for perl4 is actually still in STDIN, if we try to -e it needs to write files
} }