Hi,
I haven't had time to really hunt this bug to its source, but here is
the report anyway.
Take as an example the URI /program?foo=bar&foo=baz&foo=quux
In program, which uses libapreq, I have code which looks like this:
my @foo_in = $r->param('foo');
@foo_in should not be defined if there are no foo arguments in the query
string. The problem is that once a foo argument has been seen, the
@foo_in array is defined in that Apache child process for all time. The
array will not be defined in any other Apache child.
To reproduce the problem, use the handler I have included below and
perform the following steps:
1) Visit /yoururl
2) Visit /yoururl?foo=bar&foo=baz
3) Visit /yoururl as many times as you have Apache child processes
Here is the handler:
package JWB;
use Apache::Request;
use strict;
sub handler {
my $r = Apache::Request->new(shift());
$r->status(200);
$r->content_type("text/plain");
$r->send_http_header;
my @foo_in = $r->param('foo');
if (defined @foo_in) {
print "foo_in is defined!\n";
}
else {
print "foo_in is not defined!\n";
}
print "foo_in has this many entries: ",scalar(@foo_in);
return 0;
}
1;
Regards,
Jeffrey
--
Jeffrey W. Baker * [EMAIL PROTECTED]
Critical Path, Inc. * we handle the world's email * www.cp.net
415.808.8807