]> git.proxmox.com Git - pve-http-server.git/blobdiff - src/PVE/APIServer/AnyEvent.pm
response: avoid linefeeds in response status
[pve-http-server.git] / src / PVE / APIServer / AnyEvent.pm
index f5653e9be4d18717044055900ae1c57f6225f611..24b2002879f1585d1dfbb985d3015553e193d25a 100644 (file)
@@ -293,9 +293,16 @@ sub response {
 
     my $code = $resp->code;
     my $msg = $resp->message || HTTP::Status::status_message($code);
-    ($msg) = $msg =~m/^(.*)$/m;
     my $content = $resp->content;
 
+    # multiline mode only checks \n for $, so explicitly check for any \n or \r afterwards
+    ($msg) = $msg =~ m/^(.*)$/m;
+    if ($msg =~ /[\r\n]/) {
+       $code = 400; # bad request from user
+       $msg = HTTP::Status::status_message($code);
+       $content = '';
+    }
+
     if ($code =~ /^(1\d\d|[23]04)$/) {
        # make sure informational, no content and not modified response send no content
        $content = "";