From 6628b9426918010d203a7de19e3e187eeb077b0d Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Mon, 9 Oct 2017 17:56:56 +0200 Subject: dht: free memory allocated in dht_init() and dht_init_subvolumes() When glfs_fini() is called, DHT fails to free all memory allocations which result in a considerable leak. Change-Id: I37c6de5c93ca4516266dbe8288b4a416f5589901 BUG: 1443145 Signed-off-by: Niels de Vos --- xlators/cluster/dht/src/dht-shared.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'xlators') diff --git a/xlators/cluster/dht/src/dht-shared.c b/xlators/cluster/dht/src/dht-shared.c index 42daff01489..38de31d1ec9 100644 --- a/xlators/cluster/dht/src/dht-shared.c +++ b/xlators/cluster/dht/src/dht-shared.c @@ -237,9 +237,25 @@ dht_fini (xlator_t *this) dict_unref(conf->leaf_to_subvol); + /* allocated in dht_init_subvolumes() */ GF_FREE (conf->subvolumes); - GF_FREE (conf->subvolume_status); + GF_FREE (conf->last_event); + GF_FREE (conf->subvol_up_time); + GF_FREE (conf->du_stats); + GF_FREE (conf->decommissioned_bricks); + + /* allocated in dht_init() */ + GF_FREE (conf->mds_xattr_key); + GF_FREE (conf->link_xattr_name); + GF_FREE (conf->commithash_xattr_name); + GF_FREE (conf->wild_xattr_name); + + /* allocated in dht_init_regex() */ + if (conf->rsync_regex_valid) + regfree (&conf->rsync_regex); + if (conf->extra_regex_valid) + regfree (&conf->extra_regex); synclock_destroy (&conf->link_lock); -- cgit