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.
49 lines
1.2 KiB
49 lines
1.2 KiB
6 years ago
|
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
|
||
|
|