You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

48 lines
1.2 KiB

From 939e4a8524821ccc30b34fec97416bc1b97b5455 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 1 May 2017 14:44:43 -0400
Subject: [PATCH 06/22] gpt_disk_get_partition_info(): free our allocations on
the error path.
When gpt_disk_get_partition_info() discovers that a partition is
invalid, it returns error, but it forgets to free its allocations.
Found by covscan.
Signed-off-by: Peter Jones <pjones@redhat.com>
---
src/gpt.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/gpt.c b/src/gpt.c
index 30cbdfd..e9c713b 100644
--- a/src/gpt.c
+++ b/src/gpt.c
@@ -640,7 +640,7 @@ gpt_disk_get_partition_info(int fd, uint32_t num, uint64_t * start,
gpt_entry *ptes = NULL, *p;
int rc = 0;
- char *report=getenv("LIBEFIBOOT_REPORT_GPT_ERRORS");
+ char *report = getenv("LIBEFIBOOT_REPORT_GPT_ERRORS");
if (report)
report_errors = 1;
@@ -662,12 +662,10 @@ gpt_disk_get_partition_info(int fd, uint32_t num, uint64_t * start,
if (report_errors)
fprintf(stderr, "partition %d is not valid\n", num);
errno = EINVAL;
- return -1;
+ rc = -1;
}
- if (ptes)
- free(ptes);
- if (gpt)
- free(gpt);
+ free(ptes);
+ free(gpt);
return rc;
}
--
2.12.2