diff --git a/dap_dns_server.c b/dap_dns_server.c index 99bb525ce5f3167ab1d1d9ed7519e81d4466372a..579971a4978e7c47d18941b3eb85ae18e0202e8e 100755 --- a/dap_dns_server.c +++ b/dap_dns_server.c @@ -148,8 +148,8 @@ dap_dns_zone_callback_t dap_dns_zone_find(char *hostname) { if (!strcmp(hostname, &s_root_alias[0])) { return NULL; } - char *zone_up = strchr(hostname, '.') + 1; - if (zone_up == 1) { + char *zone_up = strchr(hostname, '.'); + if (zone_up++ == NULL) { zone_up = &s_root_alias[0]; } return dap_dns_zone_find(zone_up); @@ -326,5 +326,6 @@ void dap_dns_server_stop() { DAP_DELETE(current_zone); } // TODO add code to stop udp_thread - dap_udp_server_delete(s_dns_server->instance); + dap_udp_server_delete(s_dns_server->instance); + DAP_DELETE(s_dns_server); }