Commit 314d1434 authored by Lev Walkin's avatar Lev Walkin

mkdir mode defaulted to 0750

parent 329c8b72
...@@ -12,6 +12,7 @@ $TMPDIR = '/tmp/asn1c-cgi-jail/'; ...@@ -12,6 +12,7 @@ $TMPDIR = '/tmp/asn1c-cgi-jail/';
$SUIDHelper = './asn1c-suid-helper'; $SUIDHelper = './asn1c-suid-helper';
$SkeletonsDir = '/usr/local/share/asn1c'; # Will be needed only once $SkeletonsDir = '/usr/local/share/asn1c'; # Will be needed only once
$MD5ProgramPath = 'md5'; $MD5ProgramPath = 'md5';
$DM = 0750; # Directory mode for all mkdirs.
$warn = '<CENTER><FONT SIZE=+1><B>'; $warn = '<CENTER><FONT SIZE=+1><B>';
$unwarn = '</B></FONT></CENTER>'; $unwarn = '</B></FONT></CENTER>';
...@@ -72,17 +73,17 @@ sub isoTime() { ...@@ -72,17 +73,17 @@ sub isoTime() {
# Create the necessary environment for chrooting into. # Create the necessary environment for chrooting into.
sub prepareChrootEnvironment() { sub prepareChrootEnvironment() {
return 1 if(-d $TMPDIR); # Envuronment already exists return 1 if(-d $TMPDIR); # Envuronment already exists
mkdir $TMPDIR or bark($OpEnvFailed, $!); # Global directory mkdir $TMPDIR, $DM, or bark($OpEnvFailed, $!); # Global directory
mkdir $TMPDIR . 'sessions' or bark($OpEnvFailed, $!); # User sessions mkdir $TMPDIR . 'sessions', $DM or bark($OpEnvFailed, $!); # sessions
mkdir $TMPDIR . 'bin' or bark($OpEnvFailed, $!); # asn1c location mkdir $TMPDIR . 'bin', $DM or bark($OpEnvFailed, $!); # asn1c location
mkdir $TMPDIR . 'skeletons' or bark($OpEnvFailed, $!); # asn1c data mkdir $TMPDIR . 'skeletons', $DM or bark($OpEnvFailed, $!); # asn1c data
my $compiler_location = `cd / && which asn1c 2>/dev/null` my $compiler_location = `cd / && which asn1c 2>/dev/null`
or bark($OpEnvFailed, $!); # copy asn1c in or bark($OpEnvFailed, $!); # copy asn1c in
$compiler_location =~ s/[^\/a-z1-9.-]//ig; $compiler_location =~ s/[^\/a-z1-9.-]//ig;
bark($OpEnvFailed, $!) unless($compiler_location =~ /^\//); bark($OpEnvFailed, $!) unless($compiler_location =~ /^\//);
if(-d '/lib') { if(-d '/lib') {
# Merge in dynamic libc # Merge in dynamic libc
mkdir $TMPDIR . 'lib' or bark($OpEnvFailed, $!); mkdir $TMPDIR . 'lib', $DM or bark($OpEnvFailed, $!);
system("cd $TMPDIR/lib && " system("cd $TMPDIR/lib && "
. "for i in" . "for i in"
. " /lib/libc.*" . " /lib/libc.*"
...@@ -90,9 +91,9 @@ sub prepareChrootEnvironment() { ...@@ -90,9 +91,9 @@ sub prepareChrootEnvironment() {
. 'do ln $i; done'); . 'do ln $i; done');
} elsif(-d '/usr/lib') { } elsif(-d '/usr/lib') {
# There's no /lib on MacOS # There's no /lib on MacOS
mkdir $TMPDIR . 'usr' or bark($OpEnvFailed, $!); mkdir $TMPDIR . 'usr', $DM or bark($OpEnvFailed, $!);
mkdir $TMPDIR . 'usr/lib' or bark($OpEnvFailed, $!); mkdir $TMPDIR . 'usr/lib', $DM or bark($OpEnvFailed, $!);
mkdir $TMPDIR . 'usr/lib/system' or bark($OpEnvFailed, $!); mkdir $TMPDIR . 'usr/lib/system', $DM or bark($OpEnvFailed, $!);
system("cd $TMPDIR/usr/lib && " system("cd $TMPDIR/usr/lib && "
. "for i in" . "for i in"
. " /usr/lib/libc.*" . " /usr/lib/libc.*"
...@@ -134,7 +135,7 @@ unless($session) { ...@@ -134,7 +135,7 @@ unless($session) {
$session =~ s/[^a-f0-9]//ig; $session =~ s/[^a-f0-9]//ig;
bark("md5 program is rotten here") if(length($session) != 32); bark("md5 program is rotten here") if(length($session) != 32);
$sessionDir = makeSessionDirName($TMPDIR, $session); $sessionDir = makeSessionDirName($TMPDIR, $session);
mkdir($sessionDir) or bark($SandBoxInitFailed); mkdir($sessionDir, $DM) or bark($SandBoxInitFailed);
my $ck = cookie(-name=>'SessionID', -value=>$session, -expires=>'+1y'); my $ck = cookie(-name=>'SessionID', -value=>$session, -expires=>'+1y');
print header(-cookie=>$ck); print header(-cookie=>$ck);
} else { } else {
...@@ -143,7 +144,8 @@ unless($session) { ...@@ -143,7 +144,8 @@ unless($session) {
# Make sure the session directory exists # Make sure the session directory exists
$sessionDir = makeSessionDirName($TMPDIR, $session); $sessionDir = makeSessionDirName($TMPDIR, $session);
mkdir($sessionDir) or bark($SandBoxInitFailed) unless(-d $sessionDir); mkdir($sessionDir, $DM) or bark($SandBoxInitFailed)
unless(-d $sessionDir);
local $t = param('time'); local $t = param('time');
local $trans = param('trans'); local $trans = param('trans');
...@@ -229,7 +231,7 @@ if($#gotSafeNames >= 0) { ...@@ -229,7 +231,7 @@ if($#gotSafeNames >= 0) {
print LOG "\tDST=$transactionDir"; print LOG "\tDST=$transactionDir";
my $sandbox = $sessionDir . '/' . $transactionDir; my $sandbox = $sessionDir . '/' . $transactionDir;
mkdir($sandbox) or bark($SandBoxInitFailed); mkdir($sandbox, $DM) or bark($SandBoxInitFailed);
open(I, '> ' . $sandbox . '/+Names'); open(I, '> ' . $sandbox . '/+Names');
print I join("\n", @gotNames); print I join("\n", @gotNames);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment