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:
		| @@ -776,6 +776,9 @@ static void client_write_output(struct client *client) | ||||
| 		client_defer_output(client, client->send_buf, | ||||
| 				    client->send_buf_used); | ||||
|  | ||||
| 		if (client_is_expired(client)) | ||||
| 			return; | ||||
|  | ||||
| 		/* try to flush the deferred buffers now; the current | ||||
| 		   server command may take too long to finish, and | ||||
| 		   meanwhile try to feed output to the client, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann