Blame SOURCES/0009-efi_variable_import-fix-memory-leak-on-failure-path.patch

ac385c
From 1ae1196e74d5bac16e63a9c453f88da9c28b5c4a Mon Sep 17 00:00:00 2001
ac385c
From: Peter Jones <pjones@redhat.com>
ac385c
Date: Mon, 1 May 2017 14:52:48 -0400
ac385c
Subject: [PATCH 09/22] efi_variable_import(): fix memory leak on failure path.
ac385c
ac385c
When one of our allocations fails, we leak the other one.  Woops.
ac385c
ac385c
Found by covscan.
ac385c
ac385c
Signed-off-by: Peter Jones <pjones@redhat.com>
ac385c
---
ac385c
 src/export.c | 11 +++++++----
ac385c
 1 file changed, 7 insertions(+), 4 deletions(-)
ac385c
ac385c
diff --git a/src/export.c b/src/export.c
ac385c
index 7f2d4dd..89af720 100644
ac385c
--- a/src/export.c
ac385c
+++ b/src/export.c
ac385c
@@ -96,11 +96,14 @@ efi_variable_import(uint8_t *data, size_t size, efi_variable_t **var_out)
ac385c
 		ptr += sizeof (uint32_t);
ac385c
 
ac385c
 		if (name_len < 1 ||
ac385c
-				name_len != ((data + size) - ptr - data_len))
ac385c
-			return -1;
ac385c
-		if (data_len < 1 ||
ac385c
-				data_len != ((data + size) - ptr - name_len))
ac385c
+		    name_len != ((data + size) - ptr - data_len) ||
ac385c
+		    data_len < 1 ||
ac385c
+		    data_len != ((data + size) - ptr - name_len)) {
ac385c
+			int saved_errno = errno;
ac385c
+			free(var.guid);
ac385c
+			errno = saved_errno;
ac385c
 			return -1;
ac385c
+		}
ac385c
 
ac385c
 		var.name = calloc(1, name_len + 1);
ac385c
 		if (!var.name) {
ac385c
-- 
ac385c
2.12.2
ac385c