From: Vsevolod Stakhov Date: Tue, 9 Jun 2015 17:02:29 +0000 (+0100) Subject: Check DNS resolver return value. X-Git-Tag: 1.0.0~559 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a34711685b3d17a1e3ec9f3d5069096522ba2a35;p=thirdparty%2Frspamd.git Check DNS resolver return value. --- diff --git a/src/lua/lua_http.c b/src/lua/lua_http.c index cec631402a..10b108f13f 100644 --- a/src/lua/lua_http.c +++ b/src/lua/lua_http.c @@ -454,8 +454,13 @@ lua_http_request (lua_State *L) } } else { - make_dns_request (resolver, session, NULL, lua_http_dns_handler, cbd, - RDNS_REQUEST_A, msg->host->str); + if (!make_dns_request (resolver, session, NULL, lua_http_dns_handler, cbd, + RDNS_REQUEST_A, msg->host->str)) { + lua_http_maybe_free (cbd); + lua_pushboolean (L, FALSE); + + return 1; + } } lua_pushboolean (L, TRUE); diff --git a/src/lua/lua_tcp.c b/src/lua/lua_tcp.c index fadb7d93b8..43e8cab7e4 100644 --- a/src/lua/lua_tcp.c +++ b/src/lua/lua_tcp.c @@ -610,8 +610,11 @@ lua_tcp_request (lua_State *L) } } else { - make_dns_request (resolver, session, NULL, lua_tcp_dns_handler, cbd, - RDNS_REQUEST_A, host); + if (!make_dns_request (resolver, session, NULL, lua_tcp_dns_handler, cbd, + RDNS_REQUEST_A, host)) { + lua_tcp_push_error (cbd, "cannot resolve host"); + lua_tcp_maybe_free (cbd); + } } lua_pushboolean (L, TRUE);