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
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 |
|
|
|
|