diff options
author | Lev Walkin <vlm@lionet.info> | 2004-09-19 19:59:10 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-09-19 19:59:10 +0000 |
commit | 314d14343c938a4ad65081f023476a756a88bcb6 (patch) | |
tree | ae8475833877c0e9919ad1bb407a078323d0f566 /asn1c/webcgi/asn1c.cgi | |
parent | 329c8b72b6b303c09d8d43020a599276f7523e23 (diff) |
mkdir mode defaulted to 0750
Diffstat (limited to 'asn1c/webcgi/asn1c.cgi')
-rwxr-xr-x | asn1c/webcgi/asn1c.cgi | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/asn1c/webcgi/asn1c.cgi b/asn1c/webcgi/asn1c.cgi index 68ab225c..f596e64e 100755 --- a/asn1c/webcgi/asn1c.cgi +++ b/asn1c/webcgi/asn1c.cgi @@ -12,6 +12,7 @@ $TMPDIR = '/tmp/asn1c-cgi-jail/'; $SUIDHelper = './asn1c-suid-helper'; $SkeletonsDir = '/usr/local/share/asn1c'; # Will be needed only once $MD5ProgramPath = 'md5'; +$DM = 0750; # Directory mode for all mkdirs. $warn = '<CENTER><FONT SIZE=+1><B>'; $unwarn = '</B></FONT></CENTER>'; @@ -72,17 +73,17 @@ sub isoTime() { # Create the necessary environment for chrooting into. sub prepareChrootEnvironment() { return 1 if(-d $TMPDIR); # Envuronment already exists - mkdir $TMPDIR or bark($OpEnvFailed, $!); # Global directory - mkdir $TMPDIR . 'sessions' or bark($OpEnvFailed, $!); # User sessions - mkdir $TMPDIR . 'bin' or bark($OpEnvFailed, $!); # asn1c location - mkdir $TMPDIR . 'skeletons' or bark($OpEnvFailed, $!); # asn1c data + mkdir $TMPDIR, $DM, or bark($OpEnvFailed, $!); # Global directory + mkdir $TMPDIR . 'sessions', $DM or bark($OpEnvFailed, $!); # sessions + mkdir $TMPDIR . 'bin', $DM or bark($OpEnvFailed, $!); # asn1c location + mkdir $TMPDIR . 'skeletons', $DM or bark($OpEnvFailed, $!); # asn1c data my $compiler_location = `cd / && which asn1c 2>/dev/null` or bark($OpEnvFailed, $!); # copy asn1c in $compiler_location =~ s/[^\/a-z1-9.-]//ig; bark($OpEnvFailed, $!) unless($compiler_location =~ /^\//); if(-d '/lib') { # Merge in dynamic libc - mkdir $TMPDIR . 'lib' or bark($OpEnvFailed, $!); + mkdir $TMPDIR . 'lib', $DM or bark($OpEnvFailed, $!); system("cd $TMPDIR/lib && " . "for i in" . " /lib/libc.*" @@ -90,9 +91,9 @@ sub prepareChrootEnvironment() { . 'do ln $i; done'); } elsif(-d '/usr/lib') { # There's no /lib on MacOS - mkdir $TMPDIR . 'usr' or bark($OpEnvFailed, $!); - mkdir $TMPDIR . 'usr/lib' or bark($OpEnvFailed, $!); - mkdir $TMPDIR . 'usr/lib/system' or bark($OpEnvFailed, $!); + mkdir $TMPDIR . 'usr', $DM or bark($OpEnvFailed, $!); + mkdir $TMPDIR . 'usr/lib', $DM or bark($OpEnvFailed, $!); + mkdir $TMPDIR . 'usr/lib/system', $DM or bark($OpEnvFailed, $!); system("cd $TMPDIR/usr/lib && " . "for i in" . " /usr/lib/libc.*" @@ -134,7 +135,7 @@ unless($session) { $session =~ s/[^a-f0-9]//ig; bark("md5 program is rotten here") if(length($session) != 32); $sessionDir = makeSessionDirName($TMPDIR, $session); - mkdir($sessionDir) or bark($SandBoxInitFailed); + mkdir($sessionDir, $DM) or bark($SandBoxInitFailed); my $ck = cookie(-name=>'SessionID', -value=>$session, -expires=>'+1y'); print header(-cookie=>$ck); } else { @@ -143,7 +144,8 @@ unless($session) { # Make sure the session directory exists $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 $trans = param('trans'); @@ -229,7 +231,7 @@ if($#gotSafeNames >= 0) { print LOG "\tDST=$transactionDir"; my $sandbox = $sessionDir . '/' . $transactionDir; - mkdir($sandbox) or bark($SandBoxInitFailed); + mkdir($sandbox, $DM) or bark($SandBoxInitFailed); open(I, '> ' . $sandbox . '/+Names'); print I join("\n", @gotNames); |