diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2011-03-14 16:59:43 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2011-03-14 16:59:43 +0300 |
commit | b37575ba0e7bcd1fe247529ea414a9dda93c50d8 (patch) | |
tree | d2e41e497a4b14ed1b0ca4a496a3ec73f9bc2ca9 /src | |
parent | 5ebb51418d61f8d69234ee9bb9e6f7ea8051b7b9 (diff) | |
download | rspamd-b37575ba0e7bcd1fe247529ea414a9dda93c50d8.tar.gz rspamd-b37575ba0e7bcd1fe247529ea414a9dda93c50d8.zip |
Race in fuzzy check.
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/fuzzy_check.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c index a8090be88..f2b11c8f4 100644 --- a/src/plugins/fuzzy_check.c +++ b/src/plugins/fuzzy_check.c @@ -442,12 +442,6 @@ fuzzy_io_fin (void *ud) event_del (&session->ev); close (session->fd); - session->task->save.saved--; - if (session->task->save.saved == 0) { - /* Call other filters */ - session->task->save.saved = 1; - process_filters (session->task); - } } /* Call this whenever we got data from fuzzy storage */ @@ -521,6 +515,12 @@ fuzzy_io_callback (gint fd, short what, void *arg) ok: remove_normal_event (session->task->s, fuzzy_io_fin, session); + session->task->save.saved--; + if (session->task->save.saved == 0) { + /* Call other filters */ + session->task->save.saved = 1; + process_filters (session->task); + } } static void @@ -530,11 +530,6 @@ fuzzy_learn_fin (void *arg) event_del (&session->ev); close (session->fd); - (*session->saved)--; - if (*session->saved == 0) { - session->session->state = STATE_REPLY; - session->session->dispatcher->write_callback (session->session); - } } static void @@ -597,6 +592,12 @@ fuzzy_learn_callback (gint fd, short what, void *arg) } ok: remove_normal_event (session->session->s, fuzzy_learn_fin, session); + + (*session->saved)--; + if (*session->saved == 0) { + session->session->state = STATE_REPLY; + session->session->dispatcher->write_callback (session->session); + } } static inline void |