summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--globals.pl9
-rwxr-xr-xsyncshadowdb3
2 files changed, 8 insertions, 4 deletions
diff --git a/globals.pl b/globals.pl
index 0f91aeb9e..2b3456959 100644
--- a/globals.pl
+++ b/globals.pl
@@ -117,10 +117,11 @@ sub SyncAnyPendingShadowChanges {
return;
} elsif (defined $pid) {
# child process code runs here
- exec("./syncshadowdb",[]) or die "Unable to exec syncshadowdb: $!";
- # passing the empty list as a second parameter tricks it into
- # using execvp instead of running a shell, but still doesn't
- # pass any parameters to syncshadowdb
+ exec("./syncshadowdb","--") or die "Unable to exec syncshadowdb: $!";
+ # the idea was that passing the second parameter tricks it into
+ # using execvp instead of running a shell. Not really necessary since
+ # there are no shell meta-characters, but it passes our tinderbox
+ # test that way. :) http://bugzilla.mozilla.org/show_bug.cgi?id=21253
} elsif ($! =~ /No more process/) {
# recoverable fork error, try again in 5 seconds
sleep 5;
diff --git a/syncshadowdb b/syncshadowdb
index 7dce87038..471b6d6ad 100755
--- a/syncshadowdb
+++ b/syncshadowdb
@@ -51,6 +51,9 @@ foreach my $opt (@ARGV) {
} elsif ($opt eq '-syncall') {
$syncall = 1;
$verbose = 1;
+ } elsif ($opt eq '--') {
+ # do nothing - null parameter so we can use
+ # multi-param system() call in globals.pl
} else {
Usage();
}