Bug 134575 - some scripts trying to make world writable directories

r=justdave, gerv
parent 09c6150e
...@@ -64,8 +64,6 @@ sub WriteParams { ...@@ -64,8 +64,6 @@ sub WriteParams {
delete $::param{$item}; delete $::param{$item};
} }
} }
mkdir("data", 0777);
chmod 0777, "data";
my $tmpname = "data/params.$$"; my $tmpname = "data/params.$$";
open(FID, ">$tmpname") || die "Can't create $tmpname"; open(FID, ">$tmpname") || die "Can't create $tmpname";
my $v = $::param{'version'}; my $v = $::param{'version'};
...@@ -76,7 +74,7 @@ sub WriteParams { ...@@ -76,7 +74,7 @@ sub WriteParams {
print FID "1;\n"; print FID "1;\n";
close FID; close FID;
rename $tmpname, "data/params" || die "Can't rename $tmpname to data/params"; rename $tmpname, "data/params" || die "Can't rename $tmpname to data/params";
chmod 0666, "data/params"; ChmodDataFile('data/params', 0666);
} }
......
...@@ -117,6 +117,18 @@ $::superusergroupset = "9223372036854775807"; ...@@ -117,6 +117,18 @@ $::superusergroupset = "9223372036854775807";
#} #}
#$::SIG{__DIE__} = \&die_with_dignity; #$::SIG{__DIE__} = \&die_with_dignity;
# Some files in the data directory must be world readable iff we don't have
# a webserver group. Call this function to do this.
sub ChmodDataFile($$) {
my ($file, $mask) = @_;
my $perm = 0770;
if ((stat('data'))[2] & 0002) {
$perm = 0777;
}
$perm = $perm & $mask;
chmod $perm,$file;
}
sub ConnectToDatabase { sub ConnectToDatabase {
my ($useshadow) = (@_); my ($useshadow) = (@_);
if (!defined $::db) { if (!defined $::db) {
...@@ -565,8 +577,6 @@ sub GenerateVersionTable { ...@@ -565,8 +577,6 @@ sub GenerateVersionTable {
my @list = sort { uc($a) cmp uc($b)} keys(%::versions); my @list = sort { uc($a) cmp uc($b)} keys(%::versions);
@::legal_product = @list; @::legal_product = @list;
mkdir("data", 0777);
chmod 0777, "data";
my $tmpname = "data/versioncache.$$"; my $tmpname = "data/versioncache.$$";
open(FID, ">$tmpname") || die "Can't create $tmpname"; open(FID, ">$tmpname") || die "Can't create $tmpname";
...@@ -636,7 +646,7 @@ sub GenerateVersionTable { ...@@ -636,7 +646,7 @@ sub GenerateVersionTable {
print FID "1;\n"; print FID "1;\n";
close FID; close FID;
rename $tmpname, "data/versioncache" || die "Can't rename $tmpname to versioncache"; rename $tmpname, "data/versioncache" || die "Can't rename $tmpname to versioncache";
chmod 0666, "data/versioncache"; ChmodDataFile('data/versioncache', 0666);
} }
......
...@@ -135,11 +135,7 @@ sub Log { ...@@ -135,11 +135,7 @@ sub Log {
sub Lock { sub Lock {
if ($::lockcount <= 0) { if ($::lockcount <= 0) {
$::lockcount = 0; $::lockcount = 0;
if (!open(LOCKFID, ">>data/maillock")) { open(LOCKFID, ">>data/maillock") || die "Can't open data/maillock: $!";
mkdir "data", 0777;
chmod 0777, "data";
open(LOCKFID, ">>data/maillock") || die "Can't open lockfile.";
}
my $val = flock(LOCKFID,2); my $val = flock(LOCKFID,2);
if (!$val) { # '2' is magic 'exclusive lock' const. if (!$val) { # '2' is magic 'exclusive lock' const.
print "Content-type: text/html\n\n"; print "Content-type: text/html\n\n";
......
...@@ -50,11 +50,7 @@ sub Log { ...@@ -50,11 +50,7 @@ sub Log {
sub Lock { sub Lock {
if ($::lockcount <= 0) { if ($::lockcount <= 0) {
$::lockcount = 0; $::lockcount = 0;
if (!open(LOCKFID, ">>data/maillock")) { open(LOCKFID, ">>data/maillock") || die "Can't open data/maillock: $!";
mkdir "data", 0777;
chmod 0777, "data";
open(LOCKFID, ">>data/maillock") || die "Can't open lockfile.";
}
my $val = flock(LOCKFID,2); my $val = flock(LOCKFID,2);
if (!$val) { # '2' is magic 'exclusive lock' const. if (!$val) { # '2' is magic 'exclusive lock' const.
print "Content-type: text/html\n\n"; print "Content-type: text/html\n\n";
......
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