diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-05-06 12:27:52 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-05-06 12:32:52 +0100 |
commit | e7434337e6282ab12fb5637124fb4a3773bfb755 (patch) | |
tree | 06f6070a6f57a6b3609ed1cbd92426e0f808fe59 /src/libserver/task.c | |
parent | 6eb43010cb8fa0f2b4b0a0a33433bf58061a11b4 (diff) | |
download | rspamd-e7434337e6282ab12fb5637124fb4a3773bfb755.tar.gz rspamd-e7434337e6282ab12fb5637124fb4a3773bfb755.zip |
[Fix] Remove event before closing of fd to avoid race conditions
Diffstat (limited to 'src/libserver/task.c')
-rw-r--r-- | src/libserver/task.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libserver/task.c b/src/libserver/task.c index eca443c62..c76209cae 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -214,13 +214,10 @@ rspamd_task_free (struct rspamd_task *task) } if (task->http_conn != NULL) { + rspamd_http_connection_reset (task->http_conn); rspamd_http_connection_unref (task->http_conn); } - if (task->sock != -1) { - close (task->sock); - } - if (task->settings != NULL) { ucl_object_unref (task->settings); } @@ -245,6 +242,10 @@ rspamd_task_free (struct rspamd_task *task) event_del (task->guard_ev); } + if (task->sock != -1) { + close (task->sock); + } + rspamd_re_cache_runtime_destroy (task->re_rt); REF_RELEASE (task->cfg); |