Artur Wojcik: Fix for memory leak defect.

Martin F. Krafft madduck at alioth.debian.org
Wed Jan 27 02:03:53 UTC 2010


Module: mdadm
Branch: upstream
Commit: e207da2f1b16470429d621ee47938e3215844caa
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=e207da2f1b16470429d621ee47938e3215844caa

Author: Artur Wojcik <artur.wojcik at intel.com>
Date:   Thu Dec 10 12:03:40 2009 -0700

Fix for memory leak defect.

Dynamic memory stored in 'devnum2devname(st->container_dev)' allocated
through function 'devnum2devname' at line 1274 is lost at line 1278.

Signed-off-by: Artur Wojcik <artur.wojcik at intel.com>
Signed-off-by: Dan Williams <dan.j.williams at intel.com>

---

 super-intel.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/super-intel.c b/super-intel.c
index 72fa68f..fbde7e6 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -1244,6 +1244,7 @@ static void getinfo_super_imsm_volume(struct supertype *st, struct mdinfo *info)
 	struct imsm_dev *dev = get_imsm_dev(super, super->current_vol);
 	struct imsm_map *map = get_imsm_map(dev, 0);
 	struct dl *dl;
+	char *devname;
 
 	for (dl = super->disks; dl; dl = dl->next)
 		if (dl->raiddisk == info->disk.raid_disk)
@@ -1285,9 +1286,11 @@ static void getinfo_super_imsm_volume(struct supertype *st, struct mdinfo *info)
 
 	info->array.major_version = -1;
 	info->array.minor_version = -2;
-	sprintf(info->text_version, "/%s/%d",
-		devnum2devname(st->container_dev),
-		info->container_member);
+	devname = devnum2devname(st->container_dev);
+	*info->text_version = '\0';
+	if (devname)
+		sprintf(info->text_version, "/%s/%d", devname, info->container_member);
+	free(devname);
 	info->safe_mode_delay = 4000;  /* 4 secs like the Matrix driver */
 	uuid_from_super_imsm(st, info->uuid);
 }




More information about the pkg-mdadm-commits mailing list