From cbb956567b715acd3022eb07a46eb6e23cd038e1 Mon Sep 17 00:00:00 2001 From: Paul Scott Date: Mon, 19 Sep 2016 11:48:54 +1000 Subject: [PATCH] Prevented uv adapter from calling write when context has been freed --- adapters/libuv.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/adapters/libuv.h b/adapters/libuv.h index 3cdf3d3..ff08c25 100644 --- a/adapters/libuv.h +++ b/adapters/libuv.h @@ -20,10 +20,10 @@ static void redisLibuvPoll(uv_poll_t* handle, int status, int events) { return; } - if (events & UV_READABLE) { + if (p->context != NULL && (events & UV_READABLE)) { redisAsyncHandleRead(p->context); } - if (events & UV_WRITABLE) { + if (p->context != NULL && (events & UV_WRITABLE)) { redisAsyncHandleWrite(p->context); } } @@ -83,6 +83,7 @@ static void on_close(uv_handle_t* handle) { static void redisLibuvCleanup(void *privdata) { redisLibuvEvents* p = (redisLibuvEvents*)privdata; + p->context = NULL; // indicate that context might no longer exist uv_close((uv_handle_t*)&p->handle, on_close); }