]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Try to fix race condition in http connection
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 30 Nov 2018 15:54:41 +0000 (15:54 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 30 Nov 2018 15:54:41 +0000 (15:54 +0000)
src/lua/lua_http.c

index 80632244974035a8aecf0866336f69174c6b7377..2ca01d8a5b28f46bda3d2f192778e94f037cf43d 100644 (file)
@@ -420,12 +420,6 @@ lua_http_make_connection (struct lua_http_cbdata *cbd)
                                        cbd->auth);
                }
 
-               rspamd_http_connection_write_message (cbd->conn, cbd->msg,
-                               cbd->host, cbd->mime_type, cbd, fd,
-                               &cbd->tv, cbd->ev_base);
-               /* Message is now owned by a connection object */
-               cbd->msg = NULL;
-
                if (cbd->session) {
                        rspamd_session_add_event (cbd->session,
                                        (event_finalizer_t) lua_http_fin, cbd,
@@ -437,6 +431,15 @@ lua_http_make_connection (struct lua_http_cbdata *cbd)
                        rspamd_symcache_item_async_inc (cbd->task, cbd->item, M);
                }
 
+               struct rspamd_http_message *msg = cbd->msg;
+
+               /* Message is now owned by a connection object */
+               cbd->msg = NULL;
+
+               rspamd_http_connection_write_message (cbd->conn, msg,
+                               cbd->host, cbd->mime_type, cbd, fd,
+                               &cbd->tv, cbd->ev_base);
+
                return TRUE;
        }