From 5f7fe7fe0e96965b9cb4f6d1e2fa08acc175d7be Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 21 Mar 2007 17:15:36 -0400 Subject: [PATCH] [VALGRIND] Fix memory leak in libblkid (blkid_get_devname) Nyah, nyah, Coverity didn't find this one. :-) Signed-off-by: "Theodore Ts'o" --- lib/blkid/ChangeLog | 4 ++++ lib/blkid/resolve.c | 12 +++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index 3e95a7278..919fbb01f 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,3 +1,7 @@ +2007-03-21 Theodore Tso + + * resolve.c (blkid_get_devname): Fix memory leak. + 2007-03-18 Theodore Tso * tag.c (blkid_dev_has_tag): Allow value to be NULL, in which case diff --git a/lib/blkid/resolve.c b/lib/blkid/resolve.c index 747ea476b..b4a93081d 100644 --- a/lib/blkid/resolve.c +++ b/lib/blkid/resolve.c @@ -79,22 +79,24 @@ char *blkid_get_devname(blkid_cache cache, const char *token, value ? value : "", cache ? "in cache" : "from disk")); if (!value) { - if (!strchr(token, '=')) - return blkid_strdup(token); + if (!strchr(token, '=')) { + ret = blkid_strdup(token); + goto out; + } blkid_parse_tag_string(token, &t, &v); if (!t || !v) - goto errout; + goto out; token = t; value = v; } dev = blkid_find_dev_with_tag(c, token, value); if (!dev) - goto errout; + goto out; ret = blkid_strdup(blkid_dev_devname(dev)); -errout: +out: if (t) free(t); if (v) -- 2.47.3