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--
>
>

Reply via email to