From: justdave%bugzilla.org <> Date: Thu, 27 May 2004 16:21:24 +0000 (+0000) Subject: Bug 183753: Fix error "can't fork duplicates.cgi: Bad file descriptor" in collectstat... X-Git-Tag: bugzilla-2.18rc1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66984b98691edbbd4617a351c9a976ad9d6a8f58;p=thirdparty%2Fbugzilla.git Bug 183753: Fix error "can't fork duplicates.cgi: Bad file descriptor" in collectstats.pl on Win32 Patch by Byron Jones r=jouni, myk; a=myk --- diff --git a/collectstats.pl b/collectstats.pl index 7391d32da1..ec6b4cf70d 100755 --- a/collectstats.pl +++ b/collectstats.pl @@ -84,18 +84,27 @@ my $tend = time; CollectSeriesData(); -# Generate a static RDF file containing the default view of the duplicates data. -open(CGI, "GATEWAY_INTERFACE=cmdline REQUEST_METHOD=GET QUERY_STRING=ctype=rdf ./duplicates.cgi |") - || die "can't fork duplicates.cgi: $!"; -open(RDF, ">$datadir/duplicates.tmp") - || die "can't write to $datadir/duplicates.tmp: $!"; -my $headers_done = 0; -while () { - print RDF if $headers_done; - $headers_done = 1 if $_ eq "\n"; +{ + local $ENV{'GATEWAY_INTERFACE'} = 'cmdline'; + local $ENV{'REQUEST_METHOD'} = 'GET'; + local $ENV{'QUERY_STRING'} = 'ctype=rdf'; + + my $perl = $^X; + trick_taint($perl); + + # Generate a static RDF file containing the default view of the duplicates data. + open(CGI, "$perl -T duplicates.cgi |") + || die "can't fork duplicates.cgi: $!"; + open(RDF, ">$datadir/duplicates.tmp") + || die "can't write to $datadir/duplicates.tmp: $!"; + my $headers_done = 0; + while () { + print RDF if $headers_done; + $headers_done = 1 if $_ eq "\n"; + } + close CGI; + close RDF; } -close CGI; -close RDF; if (-s "$datadir/duplicates.tmp") { rename("$datadir/duplicates.rdf", "$datadir/duplicates-old.rdf"); rename("$datadir/duplicates.tmp", "$datadir/duplicates.rdf"); @@ -183,6 +192,7 @@ sub calculate_dupes { # so we can read it back in to do changed counters # First, delete it if it exists, so we don't add to the contents of an old file if (my @files = <$datadir/duplicates/dupes$today*>) { + map { trick_taint($_) } @files; unlink @files; }