commit bae50b5: [Minor] Fix another close/ev_modify race

Vsevolod Stakhov vsevolod at highsecure.ru
Mon Mar 30 11:21:10 UTC 2020


Author: Vsevolod Stakhov
Date: 2020-03-30 12:18:58 +0100
URL: https://github.com/rspamd/rspamd/commit/bae50b5b9c55336f4ca8620d5ef72745ec0d593f (HEAD -> master)

[Minor] Fix another close/ev_modify race

---
 src/libserver/http/http_context.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/libserver/http/http_context.c b/src/libserver/http/http_context.c
index 519e4fb04..2863c0fbc 100644
--- a/src/libserver/http/http_context.c
+++ b/src/libserver/http/http_context.c
@@ -492,8 +492,9 @@ rspamd_http_keepalive_handler (gint fd, short what, gpointer ud)
 			rspamd_inet_address_to_string_pretty (cbdata->conn->keepalive_hash_key->addr),
 			cbdata->conn->keepalive_hash_key->host,
 			cbdata->queue->length);
-	rspamd_http_connection_unref (cbdata->conn);
+	/* unref call closes fd, so we need to remove ev watcher first! */
 	rspamd_ev_watcher_stop (cbdata->ctx->event_loop, &cbdata->ev);
+	rspamd_http_connection_unref (cbdata->conn);
 	g_free (cbdata);
 }
 


More information about the Commits mailing list