From: Vsevolod Stakhov Date: Thu, 30 Jun 2016 13:15:56 +0000 (+0100) Subject: [Fix] Do not leave temporary maps cached X-Git-Tag: 1.3.0~209 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f00a43bac02bbbb2308b524f052601b000e5a09;p=thirdparty%2Frspamd.git [Fix] Do not leave temporary maps cached --- diff --git a/src/libutil/map.c b/src/libutil/map.c index eafb85f11c..a29939f26b 100644 --- a/src/libutil/map.c +++ b/src/libutil/map.c @@ -271,6 +271,7 @@ free_http_cbdata_common (struct http_callback_data *cbd, gboolean plan_new) rspamd_inet_address_destroy (cbd->addr); } + MAP_RELEASE (cbd->bk, "rspamd_map_backend"); MAP_RELEASE (periodic, "periodic"); g_slice_free1 (sizeof (struct http_callback_data), cbd); @@ -998,6 +999,10 @@ rspamd_map_remove_all (struct rspamd_config *cfg) MAP_RELEASE (bk, "rspamd_map_backend"); } + if (g_atomic_int_compare_and_exchange (&map->cache->available, 1, 0)) { + unlink (map->cache->shmem_name); + } + if (map->dtor) { map->dtor (map->dtor_data); }