From 9195c8f947481105ea7dfa51a11e18f07ec30f23 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 30 Apr 2014 08:42:50 +0200 Subject: [PATCH] HTTPServer: correctly unescape url --- PVE/HTTPServer.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PVE/HTTPServer.pm b/PVE/HTTPServer.pm index 7e3eea85..eea2c944 100755 --- a/PVE/HTTPServer.pm +++ b/PVE/HTTPServer.pm @@ -26,6 +26,7 @@ use PVE::REST; use Net::IP; use URI; +use URI::Escape; use HTTP::Status qw(:constants); use HTTP::Headers; use HTTP::Response; @@ -1046,7 +1047,7 @@ sub push_request_header { $reqstate->{keep_alive}--; if ($line =~ /(\S+)\040(\S+)\040HTTP\/(\d+)\.(\d+)/o) { - my ($method, $uri, $maj, $min) = ($1, $2, $3, $4); + my ($method, $url, $maj, $min) = ($1, $2, $3, $4); if ($maj != 1) { $self->error($reqstate, 506, "http protocol version $maj.$min not supported"); @@ -1062,7 +1063,7 @@ sub push_request_header { $reqstate->{proto}->{maj} = $maj; $reqstate->{proto}->{min} = $min; $reqstate->{proto}->{ver} = $maj*1000+$min; - $reqstate->{request} = HTTP::Request->new($method, $uri); + $reqstate->{request} = HTTP::Request->new($method, uri_unescape($url)); $reqstate->{starttime} = [gettimeofday], $self->unshift_read_header($reqstate);