diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-02-27 12:37:02 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-02-27 12:37:02 +0000 |
commit | 3bfbd8fd104995e351c00635dff492b1a9a0e97e (patch) | |
tree | 593010e7091746b0e589ba8eae5c87e5b6926720 /src/libutil/map.c | |
parent | fd449b38e77db529a69dd44ccfd7e90dcbbd7717 (diff) | |
download | rspamd-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.c | 6 |
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 |