From 3e5816bb0b7ff1cc34a6bff9e3d1cd0f4ee0663c Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 23 Sep 2016 10:48:18 +0800 Subject: [PATCH] fix hostname validation --- src/server.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/server.c b/src/server.c index ce3f9945..36449704 100644 --- a/src/server.c +++ b/src/server.c @@ -772,12 +772,6 @@ server_recv_cb(EV_P_ ev_io *w, int revents) close_and_free_server(EV_A_ server); return; } - if (!validate_hostname(host, name_len)) { - LOGE("invalid host name"); - report_addr(server->fd); - close_and_free_server(EV_A_ server); - return; - } struct cork_ip ip; if (cork_ip_init(&ip, host) != -1) { info.ai_socktype = SOCK_STREAM; @@ -800,6 +794,12 @@ server_recv_cb(EV_P_ ev_io *w, int revents) info.ai_addr = (struct sockaddr *)addr; } } else { + if (!validate_hostname(host, name_len)) { + LOGE("invalid host name"); + report_addr(server->fd); + close_and_free_server(EV_A_ server); + return; + } need_query = 1; } } else if ((atyp & ADDRTYPE_MASK) == 4) {