From: Theodore Ts'o Date: Wed, 7 Mar 2007 00:56:18 +0000 (-0500) Subject: Fix memory leak in blkid library X-Git-Tag: E2FSPROGS-1_40~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=257ace82b77a281da6d0491294eda6f0b27ef424;p=thirdparty%2Fe2fsprogs.git Fix memory leak in blkid library Addresses Debian Bug: #413661 Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index b0a8098d8..a0890a2a2 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,3 +1,8 @@ +2007-03-06 Theodore Tso + + * devname.c (dm_probe_all), probe.c (blkid_verify): Fix memory + leak. (Addresses Debian Bug #413661) + 2006-09-24 Theodore Tso * devno.c (scan_dir): Don't follow symlinks when recursively diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c index f8f5f48c9..13500768e 100644 --- a/lib/blkid/devname.c +++ b/lib/blkid/devname.c @@ -305,6 +305,7 @@ static void dm_probe_all(blkid_cache cache, int only_if_new) probe_one(cache, device, dev, BLKID_PRI_DM, only_if_new); try_next: + free(device); next = names->next; } while (next); diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c index 0f16565a2..24592bf3b 100644 --- a/lib/blkid/probe.c +++ b/lib/blkid/probe.c @@ -886,9 +886,9 @@ try_again: } if (!dev->bid_type) { - if (probe.fd >= 0) close(probe.fd); blkid_free_dev(dev); - return NULL; + dev = 0; + goto found_type; } found_type: @@ -908,7 +908,8 @@ found_type: free(probe.sbbuf); if (probe.buf) free(probe.buf); - close(probe.fd); + if (probe.fd >= 0) + close(probe.fd); return dev; }