diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-02-26 16:51:07 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-02-26 16:55:58 +0000 |
commit | 2c316e86a137b0622863c18b2b6e9f09c693fbc3 (patch) | |
tree | e7f64475044f1c0c8cdc426451b7f37f536a4d46 /src/libutil/map.c | |
parent | 931e181c3202e5a92bcc614ec042fd46f032c4c3 (diff) | |
download | rspamd-2c316e86a137b0622863c18b2b6e9f09c693fbc3.tar.gz rspamd-2c316e86a137b0622863c18b2b6e9f09c693fbc3.zip |
[Fix] Fix maps object update race condition
Issue: #2467
Diffstat (limited to 'src/libutil/map.c')
-rw-r--r-- | src/libutil/map.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/libutil/map.c b/src/libutil/map.c index bab145e5e..d4687e433 100644 --- a/src/libutil/map.c +++ b/src/libutil/map.c @@ -1153,11 +1153,7 @@ rspamd_map_periodic_dtor (struct map_periodic_cbdata *periodic) if (periodic->need_modify) { /* We are done */ - periodic->map->fin_callback (&periodic->cbdata); - - if (periodic->cbdata.cur_data) { - *periodic->map->user_data = periodic->cbdata.cur_data; - } + periodic->map->fin_callback (&periodic->cbdata, periodic->map->user_data); } else { /* Not modified */ @@ -2038,11 +2034,7 @@ rspamd_map_preload (struct rspamd_config *cfg) } if (succeed) { - map->fin_callback (&fake_cbd.cbdata); - - if (fake_cbd.cbdata.cur_data) { - *map->user_data = fake_cbd.cbdata.cur_data; - } + map->fin_callback (&fake_cbd.cbdata, map->user_data); } else { msg_info_map ("preload of %s failed", map->name); |