diff --git a/redis.c b/redis.c index 733bc17d81fae75061f1a93b45bbc3ecbf1fd289..f489072e26c9872238cb3846f21a9ff5fea9f11e 100644 --- a/redis.c +++ b/redis.c @@ -1649,7 +1649,6 @@ static void freeClient(redisClient *c) { aeDeleteFileEvent(server.el,c->fd,AE_READABLE); aeDeleteFileEvent(server.el,c->fd,AE_WRITABLE); listRelease(c->reply); - listRelease(c->io_keys); freeClientArgv(c); close(c->fd); /* Remove from the list of clients */ @@ -1662,6 +1661,7 @@ static void freeClient(redisClient *c) { if (ln) listDelNode(server.io_clients,ln); listRelease(c->io_keys); } + listRelease(c->io_keys); /* Other cleanup */ if (c->flags & REDIS_SLAVE) { if (c->replstate == REDIS_REPL_SEND_BULK && c->repldbfd != -1)