Blame SOURCES/0006-Make-sure-data-created-for-load-options-is-freed.patch

5fb29d
From 2c557c3168b37b42d4dec1b5aa2298e7ce7597ad Mon Sep 17 00:00:00 2001
5fb29d
From: Peter Jones <pjones@redhat.com>
5fb29d
Date: Wed, 10 Sep 2014 15:46:04 -0400
5fb29d
Subject: [PATCH 06/18] Make sure data created for load options is freed.
5fb29d
5fb29d
Covscan... may not be right about this one.  But it's better to be sure.
5fb29d
5fb29d
Signed-off-by: Peter Jones <pjones@redhat.com>
5fb29d
---
5fb29d
 src/lib/efi.c | 9 ++++++++-
5fb29d
 1 file changed, 8 insertions(+), 1 deletion(-)
5fb29d
5fb29d
diff --git a/src/lib/efi.c b/src/lib/efi.c
5fb29d
index 4218eb5..7dc3c92 100644
5fb29d
--- a/src/lib/efi.c
5fb29d
+++ b/src/lib/efi.c
5fb29d
@@ -939,6 +939,7 @@ append_extra_args(uint8_t **data, size_t *data_size)
5fb29d
 		free(new_data);
5fb29d
 		if (ret < 0)
5fb29d
 			return -1;
5fb29d
+		new_data = NULL;
5fb29d
 		new_data_size = 0;
5fb29d
 	}
5fb29d
 
5fb29d
@@ -946,15 +947,21 @@ append_extra_args(uint8_t **data, size_t *data_size)
5fb29d
 		ret = append_extra_args_unicode(&new_data, &new_data_size);
5fb29d
 	else
5fb29d
 		ret = append_extra_args_ascii(&new_data, &new_data_size);
5fb29d
-	if (ret < 0)
5fb29d
+	if (ret < 0) {
5fb29d
+		if (new_data) /* this can't happen, but covscan believes */
5fb29d
+			free(new_data);
5fb29d
 		return -1;
5fb29d
+	}
5fb29d
 	if (new_data_size) {
5fb29d
 		ret = add_new_data(data, data_size, new_data, new_data_size);
5fb29d
 		free(new_data);
5fb29d
+		new_data = NULL;
5fb29d
 		if (ret < 0)
5fb29d
 			return -1;
5fb29d
 		new_data_size = 0;
5fb29d
 	}
5fb29d
 
5fb29d
+	if (new_data) /* once again, this can't happen, but covscan believes */
5fb29d
+		free(new_data);
5fb29d
 	return 0;
5fb29d
 }
5fb29d
-- 
5fb29d
1.9.3
5fb29d