On Thu, May 7, 2009 at 1:39 PM, Adam Prime <adam.pr...@utoronto.ca> wrote: > Ryan Gies wrote: >> >> I'm rather surprised at what I'm seeing, but it appears this method >> (Apache2::URI::unescape_url) is not correctly updating the length scalar >> variable. Any thoughts? -Ryan >> >> Output from the below response handler snippet: >> >> Before: 'http%3A%2F%2Fexample.com' >> After : 'http://example.c...@e.com' >> >> Alternate output (when url encoding the result): >> >> Before: 'http%3A%2F%2Fexample.com' >> After : 'http://example.com%00e.com/ >> > > That's pretty weird. If you modify it to be: > > $url = Apache2::URI::unescape_url($url); > > then it works ok, though according to the docs on perl.apache.org it's not > supposed to have a return value.
I've got unescape_url a couple places in my code and it is being used according to the docs. I'll add this as a test case and see if I can replicate it. > > Adam > >> --8<-------------------------------------------- >> >> package Apache2::Test::T1; >> use strict; >> use Apache2::URI; >> >> sub handler { >> my $r = shift; >> $r->content_type('text/plain'); >> my $url = 'http%3A%2F%2Fexample.com'; >> $r->print(sprintf("Before: '%s'\n", $url)); >> Apache2::URI::unescape_url($url); >> $r->print(sprintf("After : '%s'\n", $url)); >> Apache2::Const::OK; >> } >> >> 1; >> >> -------------------------------------------->8-- > >