Commit faaf9daf authored by Max Kellermann's avatar Max Kellermann

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.
parent 427dd816
...@@ -776,6 +776,9 @@ static void client_write_output(struct client *client) ...@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment