]> source.dussan.org Git - rspamd.git/commitdiff
Fix another issue with fixed strings.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 29 Oct 2015 08:48:03 +0000 (08:48 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 29 Oct 2015 08:48:03 +0000 (08:48 +0000)
src/lua/lua_http.c

index b7b63596e66725b6895883741bfb9f47fc1e3dbc..c6c95c9dfb4981211552de1f5aa5f690cd64190f 100644 (file)
@@ -273,6 +273,7 @@ static gint
 lua_http_request (lua_State *L)
 {
        const gchar *url, *lua_body;
+       gchar *to_resolve;
        gint cbref;
        gsize bodylen;
        struct event_base *ev_base;
@@ -460,17 +461,25 @@ lua_http_request (lua_State *L)
        }
        else {
                if (task == NULL) {
+                       to_resolve = g_malloc (msg->host->len + 1);
+                       rspamd_strlcpy (to_resolve, msg->host->str, msg->host->len + 1);
+
                        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);
+                               g_free (to_resolve);
 
                                return 1;
                        }
+                       
+                       g_free (to_resolve);
                }
                else {
+                       to_resolve = rspamd_mempool_fstrdup (task->task_pool, msg->host);
+
                        if (!make_dns_request_task (task, lua_http_dns_handler, cbd,
-                                       RDNS_REQUEST_A, msg->host->str)) {
+                                       RDNS_REQUEST_A, to_resolve)) {
                                lua_http_maybe_free (cbd);
                                lua_pushboolean (L, FALSE);