From f851baf8c6e7cfc8d8b2bf904d8c090e70618190 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 17 Sep 2008 22:02:13 +0200 Subject: client: check expired after client_process_line() The assertion on "!client_is_expired(client)" was wrong, because writing the command response may cause the client to become expired. Replace that assertion with a check. --- src/client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client.c b/src/client.c index c3ed7fec5..9357b81ae 100644 --- a/src/client.c +++ b/src/client.c @@ -417,7 +417,8 @@ static int client_input_received(struct client *cl, int bytesRead) if (ret == COMMAND_RETURN_KILL || ret == COMMAND_RETURN_CLOSE) return ret; - assert(!client_is_expired(cl)); + if (client_is_expired(cl)) + return COMMAND_RETURN_CLOSE; cl->bufferPos = cl->bufferLength; } if (cl->bufferLength == CLIENT_MAX_BUFFER_LENGTH) { -- cgit v1.2.3