From 71521626d9358c3e86d70f9af1ddc2dd696542a8 Mon Sep 17 00:00:00 2001 From: Eli Lindsey Date: Thu, 10 Sep 2020 10:59:12 -0400 Subject: [PATCH] only check for and process read/write events if status is success --- src/extension/libuv.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/extension/libuv.c b/src/extension/libuv.c index 6843a023..840ba960 100644 --- a/src/extension/libuv.c +++ b/src/extension/libuv.c @@ -134,24 +134,25 @@ static void getdns_libuv_cb(uv_poll_t *poll, int status, int events) { getdns_eventloop_event *el_ev = (getdns_eventloop_event *)poll->data; - (void)status; - if (events & UV_READABLE) { - assert(el_ev->read_cb); - DEBUG_UV("enter libuv_read_cb(el_ev = %p, el_ev->ev = %p)\n" - , el_ev, el_ev->ev); - el_ev->read_cb(el_ev->userarg); - DEBUG_UV("exit libuv_read_cb(el_ev = %p, el_ev->ev = %p)\n" - , el_ev, el_ev->ev); - } else if (events & UV_WRITABLE) { - assert(el_ev->write_cb); - DEBUG_UV("enter libuv_write_cb(el_ev = %p, el_ev->ev = %p)\n" - , el_ev, el_ev->ev); - el_ev->write_cb(el_ev->userarg); - DEBUG_UV("exit libuv_write_cb(el_ev = %p, el_ev->ev = %p)\n" - , el_ev, el_ev->ev); - } else { - assert(ASSERT_UNREACHABLE); + if (status == 0) { + if (events & UV_READABLE) { + assert(el_ev->read_cb); + DEBUG_UV("enter libuv_read_cb(el_ev = %p, el_ev->ev = %p)\n" + , el_ev, el_ev->ev); + el_ev->read_cb(el_ev->userarg); + DEBUG_UV("exit libuv_read_cb(el_ev = %p, el_ev->ev = %p)\n" + , el_ev, el_ev->ev); + } else if (events & UV_WRITABLE) { + assert(el_ev->write_cb); + DEBUG_UV("enter libuv_write_cb(el_ev = %p, el_ev->ev = %p)\n" + , el_ev, el_ev->ev); + el_ev->write_cb(el_ev->userarg); + DEBUG_UV("exit libuv_write_cb(el_ev = %p, el_ev->ev = %p)\n" + , el_ev, el_ev->ev); + } else { + assert(ASSERT_UNREACHABLE); + } } }