From 57ab828ba10b5fdc3dbc11e7b38a6b3ff1bea42c Mon Sep 17 00:00:00 2001 From: Max Lv Date: Wed, 27 Dec 2017 21:43:28 -0800 Subject: [PATCH] Fix a potential null pointer acceess issue. #1854 It's possible that c-ares calls the callback function immediately in ares_gethostbyname, which may free the server structure in that callback function. --- src/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server.c b/src/server.c index be7db43f..4aa2a237 100644 --- a/src/server.c +++ b/src/server.c @@ -903,6 +903,8 @@ server_recv_cb(EV_P_ ev_io *w, int revents) ev_io_start(EV_A_ & remote->send_ctx->io); } } else { + ev_io_stop(EV_A_ & server_recv_ctx->io); + query_t *query = ss_malloc(sizeof(query_t)); memset(query, 0, sizeof(query_t)); query->server = server; @@ -920,8 +922,6 @@ server_recv_cb(EV_P_ ev_io *w, int revents) close_and_free_server(EV_A_ server); return; } - - ev_io_stop(EV_A_ & server_recv_ctx->io); } return;