]> 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:47:22 +0000 (23:47 -0400)
committerDave Lawrence <dlawrence@mozilla.com>
Mon, 15 Jul 2013 03:47:22 +0000 (23:47 -0400)
r=glob,a=justdave

Bugzilla/WebService/Server/XMLRPC.pm

index 025fb8f192cb408c49f20fe7e4b2837555c049a9..fc297421a20baaf1f64ed4f59132c94c15ceab19 100644 (file)
@@ -61,8 +61,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);
+        }
     }
 }