dcavalca / rpms / util-linux

Forked from rpms/util-linux 2 years ago
Clone

Blame SOURCES/0070-libblkid-fix-memory-leak-in-blkid_parse_tag_string.patch

b394b9
From 8af4232ff50154588c75f25a951b5619f05d0421 Mon Sep 17 00:00:00 2001
b394b9
From: Karel Zak <kzak@redhat.com>
b394b9
Date: Tue, 19 Nov 2013 17:52:56 +0100
b394b9
Subject: [PATCH 70/84] libblkid: fix memory leak in blkid_parse_tag_string()
b394b9
b394b9
Upstream: http://github.com/karelzak/util-linux/commit/c1178175e7adb35388a3e34495974d7f24f45d5d
b394b9
Upstream: http://github.com/karelzak/util-linux/commit/aab691cf8deb4a53782a0317b6f96c5d8b61f8e9
b394b9
Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1335671
b394b9
Signed-off-by: Karel Zak <kzak@redhat.com>
b394b9
---
b394b9
 libblkid/src/tag.c | 14 +++++++++-----
b394b9
 1 file changed, 9 insertions(+), 5 deletions(-)
b394b9
b394b9
diff --git a/libblkid/src/tag.c b/libblkid/src/tag.c
b394b9
index 3a70950..3aede04 100644
b394b9
--- a/libblkid/src/tag.c
b394b9
+++ b/libblkid/src/tag.c
b394b9
@@ -237,14 +237,18 @@ int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val)
b394b9
 			goto errout; /* missing closing quote */
b394b9
 		*cp = '\0';
b394b9
 	}
b394b9
-	value = value && *value ? strdup(value) : NULL;
b394b9
-	if (!value)
b394b9
-		goto errout;
b394b9
+
b394b9
+	if (ret_val) {
b394b9
+		value = *value ? strdup(value) : NULL;
b394b9
+		if (!value)
b394b9
+			goto errout;
b394b9
+		*ret_val = value;
b394b9
+	}
b394b9
 
b394b9
 	if (ret_type)
b394b9
 		*ret_type = name;
b394b9
-	if (ret_val)
b394b9
-		*ret_val = value;
b394b9
+	else
b394b9
+		free(name);
b394b9
 
b394b9
 	return 0;
b394b9
 
b394b9
-- 
b394b9
2.7.4
b394b9