]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 787328 - xmlrpc.cgi doesn't send any security-related headers
authorDave Lawrence <dlawrence@mozilla.com>
Mon, 15 Jul 2013 03:46:19 +0000 (23:46 -0400)
committerDave Lawrence <dlawrence@mozilla.com>
Mon, 15 Jul 2013 03:46:19 +0000 (23:46 -0400)
r=glob,a=justdave

Bugzilla/WebService/Server/XMLRPC.pm

index e8fb5de997d4ab7c6751934ccb3c0bb057ac6919..40cc6ec5489eaecf34dc18ab5cb736179efc95c7 100644 (file)
@@ -48,8 +48,16 @@ sub make_response {
 
     # XMLRPC::Transport::HTTP::CGI doesn't know about Bugzilla carrying around
     # its cookies in Bugzilla::CGI, so we need to copy them over.
-    foreach (@{Bugzilla->cgi->{'Bugzilla_cookie_list'}}) {
-        $self->response->headers->push_header('Set-Cookie', $_);
+    foreach my $cookie (@{Bugzilla->cgi->{'Bugzilla_cookie_list'}}) {
+        $self->response->headers->push_header('Set-Cookie', $cookie);
+    }
+
+    # Copy across security related headers from Bugzilla::CGI
+    foreach my $header (split(/[\r\n]+/, Bugzilla->cgi->header)) {
+        my ($name, $value) = $header =~ /^([^:]+): (.*)/;
+        if (!$self->response->headers->header($name)) {
+           $self->response->headers->header($name => $value);
+        }
     }
 }