mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
[BUG] http_server_error() must not purge a previous pending response
This can cause parts of responses to be truncated in case of pipelined requests if the second request generates an error before the first request is completely flushed.
This commit is contained in:
parent
e803de2c6b
commit
d5fd51c75b
@ -619,8 +619,11 @@ int http_remove_header2(struct http_msg *msg, struct buffer *buf,
|
|||||||
static void http_server_error(struct session *t, struct stream_interface *si,
|
static void http_server_error(struct session *t, struct stream_interface *si,
|
||||||
int err, int finst, int status, const struct chunk *msg)
|
int err, int finst, int status, const struct chunk *msg)
|
||||||
{
|
{
|
||||||
|
buffer_auto_read(si->ob);
|
||||||
|
buffer_abort(si->ob);
|
||||||
|
buffer_auto_close(si->ob);
|
||||||
|
buffer_erase(si->ob);
|
||||||
buffer_erase(si->ob);
|
buffer_erase(si->ob);
|
||||||
buffer_erase(si->ib);
|
|
||||||
buffer_auto_close(si->ib);
|
buffer_auto_close(si->ib);
|
||||||
buffer_auto_read(si->ib);
|
buffer_auto_read(si->ib);
|
||||||
if (status > 0 && msg) {
|
if (status > 0 && msg) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user