From c1178175e7adb35388a3e34495974d7f24f45d5d Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 19 Nov 2013 17:52:56 +0100 Subject: libblkid: fix memory leak in blkid_parse_tag_string() Signed-off-by: Karel Zak --- libblkid/src/tag.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'libblkid/src/tag.c') diff --git a/libblkid/src/tag.c b/libblkid/src/tag.c index 3a7095013..e095ab1be 100644 --- a/libblkid/src/tag.c +++ b/libblkid/src/tag.c @@ -237,14 +237,18 @@ int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val) goto errout; /* missing closing quote */ *cp = '\0'; } - value = value && *value ? strdup(value) : NULL; - if (!value) - goto errout; + + if (ret_val) { + value = value && *value ? strdup(value) : NULL; + if (!value) + goto errout; + *ret_val = value; + } if (ret_type) *ret_type = name; - if (ret_val) - *ret_val = value; + else + free(name); return 0; -- cgit v1.2.3-55-g7522