From 6f9e26f5c0d0bbcd0eeedcda1de3daa92188bd22 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Thu, 13 Dec 2012 20:19:38 +0100 Subject: [PATCH] thin: dmeventd fix memleak on error path Some error paths on _umount have leaked bitset. --- WHATS_NEW_DM | 1 + daemons/dmeventd/plugins/thin/dmeventd_thin.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM index 75bd1b308..ce342cf32 100644 --- a/WHATS_NEW_DM +++ b/WHATS_NEW_DM @@ -1,5 +1,6 @@ Version 1.02.78 - =================================== + Fix resource leak in error path of dmeventd's umount of thin volume. Automatically deactivate failed preloaded dm tree node. Add DM_DISABLE_UDEV environment variable to manage dev nodes by libdm only. Fix dm_task_set_cookie to properly process udev flags if udev_sync disabled. diff --git a/daemons/dmeventd/plugins/thin/dmeventd_thin.c b/daemons/dmeventd/plugins/thin/dmeventd_thin.c index a1af4c080..ba72c4aa2 100644 --- a/daemons/dmeventd/plugins/thin/dmeventd_thin.c +++ b/daemons/dmeventd/plugins/thin/dmeventd_thin.c @@ -291,8 +291,9 @@ static void _umount(struct dm_task *dmt, const char *device) if (fclose(minfo)) syslog(LOG_ERR, "Failed to close %s\n", mountinfo); - dm_bitset_destroy(minors); out: + if (minors) + dm_bitset_destroy(minors); dmeventd_lvm2_lock(); }