|
|
38ab4d |
From 7c9c04485631119423e94cdb207c22c3cd633323 Mon Sep 17 00:00:00 2001
|
|
|
5fb29d |
From: Peter Jones <pjones@redhat.com>
|
|
|
5fb29d |
Date: Wed, 10 Sep 2014 16:20:04 -0400
|
|
|
38ab4d |
Subject: [PATCH 13/31] Don't reuse a pointer to static data and free
|
|
|
5fb29d |
conditionally.
|
|
|
5fb29d |
|
|
|
5fb29d |
Instead, use a second pointer and free that, because poor covscan can't
|
|
|
5fb29d |
figure out what's going on.
|
|
|
5fb29d |
|
|
|
5fb29d |
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
|
5fb29d |
---
|
|
|
5fb29d |
src/lib/unparse_path.c | 9 ++++++---
|
|
|
5fb29d |
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
5fb29d |
|
|
|
5fb29d |
diff --git a/src/lib/unparse_path.c b/src/lib/unparse_path.c
|
|
|
5fb29d |
index 431dc06..5a69fde 100644
|
|
|
5fb29d |
--- a/src/lib/unparse_path.c
|
|
|
5fb29d |
+++ b/src/lib/unparse_path.c
|
|
|
5fb29d |
@@ -325,6 +325,7 @@ unparse_media_hard_drive_path(char *buffer, size_t buffer_size,
|
|
|
5fb29d |
char text_uuid[40], *sig=text_uuid;
|
|
|
5fb29d |
char a[16], b[16], c[16];
|
|
|
5fb29d |
int rc = 0;
|
|
|
5fb29d |
+ char *sig_allocated = NULL;
|
|
|
5fb29d |
|
|
|
5fb29d |
switch (hd->signature_type) {
|
|
|
5fb29d |
case 0x00:
|
|
|
5fb29d |
@@ -339,9 +340,11 @@ unparse_media_hard_drive_path(char *buffer, size_t buffer_size,
|
|
|
5fb29d |
return -1;
|
|
|
5fb29d |
break;
|
|
|
5fb29d |
case 0x02: /* GPT */
|
|
|
5fb29d |
- rc = efi_guid_to_str((efi_guid_t *)hd->signature, &sig);
|
|
|
5fb29d |
+ rc = efi_guid_to_str((efi_guid_t *)hd->signature,
|
|
|
5fb29d |
+ &sig_allocated);
|
|
|
5fb29d |
if (rc < 0)
|
|
|
5fb29d |
return rc;
|
|
|
5fb29d |
+ sig = sig_allocated;
|
|
|
5fb29d |
break;
|
|
|
5fb29d |
default:
|
|
|
5fb29d |
return 0;
|
|
|
5fb29d |
@@ -352,8 +355,8 @@ unparse_media_hard_drive_path(char *buffer, size_t buffer_size,
|
|
|
5fb29d |
get(b, hd->start),
|
|
|
5fb29d |
get(c, hd->size),
|
|
|
5fb29d |
sig);
|
|
|
5fb29d |
- if (hd->signature_type == 0x02)
|
|
|
5fb29d |
- free(sig);
|
|
|
5fb29d |
+ if (sig_allocated)
|
|
|
5fb29d |
+ free(sig_allocated);
|
|
|
5fb29d |
return rc;
|
|
|
5fb29d |
}
|
|
|
5fb29d |
|
|
|
5fb29d |
--
|
|
|
38ab4d |
2.7.4
|
|
|
5fb29d |
|