summaryrefslogtreecommitdiffstats
path: root/src/libutil/map.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-02-27 12:37:02 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-02-27 12:37:02 +0000
commit3bfbd8fd104995e351c00635dff492b1a9a0e97e (patch)
tree593010e7091746b0e589ba8eae5c87e5b6926720 /src/libutil/map.c
parentfd449b38e77db529a69dd44ccfd7e90dcbbd7717 (diff)
downloadrspamd-3bfbd8fd104995e351c00635dff492b1a9a0e97e.tar.gz
rspamd-3bfbd8fd104995e351c00635dff492b1a9a0e97e.zip
[CritFix] Fix critical memory issues with radix maps
Diffstat (limited to 'src/libutil/map.c')
-rw-r--r--src/libutil/map.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libutil/map.c b/src/libutil/map.c
index da99e384c..11ef2c441 100644
--- a/src/libutil/map.c
+++ b/src/libutil/map.c
@@ -2069,8 +2069,12 @@ static void
radix_tree_insert_helper (gpointer st, gconstpointer key, gconstpointer value)
{
radix_compressed_t *tree = (radix_compressed_t *)st;
+ rspamd_mempool_t *pool;
+ gpointer nvalue;
- rspamd_radix_add_iplist ((gchar *)key, ",", tree, value, FALSE);
+ pool = radix_get_pool (tree);
+ nvalue = rspamd_mempool_strdup (pool, value);
+ rspamd_radix_add_iplist (key, ",", tree, nvalue, FALSE);
}
static void