in reply to Re^2: SOAP::Lite and proxy settings
in thread SOAP::Lite and proxy settings
hi, i posted this message to the yahoo group about soap, but i thought i +'d cover all the bases. here's my posted mesg: After using SOAP::Lite with Perl 5.6.1, I discovered a bug in the software. the problem seems to be with the regex engine and the lines: $_[0] =~ /^(\w+):/ or die "proxy: transport protocol not specified\n +"; my $protocol = uc $1; # untainted now the problem is that the $1 appears to be interpolated in the wrong context. the uc call ends up being AUTOLOAD'ed and calling proxy->ToUpper from the utf8_heavy library. I must confess ignorance as to why this occurs, but here's a super easy patch that will solves the problem for 5.6.1 and will work in 5.005 versions too: it's just wrapping the $1 in a join() to force string context. --- Lite.pm.orig Wed Jun 27 13:28:08 2001 +++ Lite.pm.new Wed Jun 27 15:50:14 2001 @@ -120,7 +120,8 @@ return $self->{_proxy} unless @_; $_[0] =~ /^(\w+):/ or die "proxy: transport protocol not specified\ +n"; - my $protocol = uc $1; # untainted now + ## need to join $1 to force string context in 5.6.1 + my $protocol = uc(join("",$1)); # untainted now # https: should be done through Transport::HTTP.pm for ($protocol) { s/^HTTPS$/HTTP/ } Cheers dave viner
|
|---|