client: check "expired" flag again in client_write_output()
When client_defer_output() aborts the connection to the client, client_write_output() called client_write_deferred() anyway. This caused an assertion failure. Fix it by checking for the "expired" flag again after client_defer_output() returns.
This commit is contained in:
parent
427dd81678
commit
faaf9dafe1
@ -776,6 +776,9 @@ static void client_write_output(struct client *client)
|
|||||||
client_defer_output(client, client->send_buf,
|
client_defer_output(client, client->send_buf,
|
||||||
client->send_buf_used);
|
client->send_buf_used);
|
||||||
|
|
||||||
|
if (client_is_expired(client))
|
||||||
|
return;
|
||||||
|
|
||||||
/* try to flush the deferred buffers now; the current
|
/* try to flush the deferred buffers now; the current
|
||||||
server command may take too long to finish, and
|
server command may take too long to finish, and
|
||||||
meanwhile try to feed output to the client,
|
meanwhile try to feed output to the client,
|
||||||
|
Loading…
Reference in New Issue
Block a user