]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Lua_tcp: Do not decrease item refcount with no watcher
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 30 Dec 2019 20:05:06 +0000 (20:05 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 30 Dec 2019 20:05:36 +0000 (20:05 +0000)
src/lua/lua_tcp.c

index 09d572199d59f68bc21fd0271aeeb35c94352b75..1edd7127e0ea412a7539777337eb521678b7b0cb 100644 (file)
@@ -1768,6 +1768,7 @@ lua_tcp_request (lua_State *L)
                if (rspamd_session_blocked (session)) {
                        lua_tcp_push_error (cbd, TRUE, "async session is the blocked state");
                        TCP_RELEASE (cbd);
+                       cbd->item = NULL; /* To avoid decrease with no watcher */
                        lua_pushboolean (L, FALSE);
 
                        return 1;
@@ -1784,6 +1785,7 @@ lua_tcp_request (lua_State *L)
                        lua_tcp_push_error (cbd, TRUE, "cannot connect to the host: %s", host);
                        lua_pushboolean (L, FALSE);
 
+                       /* No reset of the item as watcher has been registered */
                        TCP_RELEASE (cbd);
 
                        return 1;
@@ -1795,7 +1797,7 @@ lua_tcp_request (lua_State *L)
                                        RDNS_REQUEST_A, host)) {
                                lua_tcp_push_error (cbd, TRUE, "cannot resolve host: %s", host);
                                lua_pushboolean (L, FALSE);
-
+                               cbd->item = NULL; /* To avoid decrease with no watcher */
                                TCP_RELEASE (cbd);
 
                                return 1;
@@ -1809,6 +1811,7 @@ lua_tcp_request (lua_State *L)
                                        RDNS_REQUEST_A, host)) {
                                lua_tcp_push_error (cbd, TRUE, "cannot resolve host: %s", host);
                                lua_pushboolean (L, FALSE);
+                               cbd->item = NULL; /* To avoid decrease with no watcher */
 
                                TCP_RELEASE (cbd);