http_protocol.c: avoid duplicate headers when using
ap_send_error_response While debugging PR 61860 I found a chain of events that leads to duplicate headers in the HTTP response if Header always set is used in the httpd's config. As far as can understand, mod_headers uses err_headers_out when dealing with the 'always' setting, since it is expected to be preserved even on error. The current code seems to correctly preserve the important headers like Location (happening before the bit of code that changed), but then it swaps headers_out with err_headers_out and clears err_headers_out. My understanding is that this will cause mod_headers, if called again, to re-insert the headers set via 'always' again in err_headers_out, leading to a duplication in the response. So far I managed to reproduce this only with the specific use case outlined by the PR, but there might be more. r1831585 was added to the test suite for PR 61860, (marked as TODO), and now it seems to pass as expected. Since thi...
parent
bade60cb
Please register or sign in to comment