|
|
1c5bb4e |
From 4e46085972d2367dff2345a73361c1c17b47ce73 Mon Sep 17 00:00:00 2001
|
|
|
e2ce63b |
From: Ian Jackson <ian.jackson@eu.citrix.com>
|
|
|
1c5bb4e |
Date: Fri, 14 Jun 2013 16:45:38 +0100
|
|
|
1c5bb4e |
Subject: [PATCH 07/21] tools/xcutils/readnotes: adjust print_l1_mfn_valid_note
|
|
|
e2ce63b |
|
|
|
e2ce63b |
Use the new PTRVAL macros and elf_access_unsigned in
|
|
|
e2ce63b |
print_l1_mfn_valid_note.
|
|
|
e2ce63b |
|
|
|
e2ce63b |
No functional change unless the input is wrong, or we are reading a
|
|
|
e2ce63b |
file for a different endianness.
|
|
|
e2ce63b |
|
|
|
e2ce63b |
Separated out from the previous patch because this change does produce
|
|
|
e2ce63b |
a difference in the generated code.
|
|
|
e2ce63b |
|
|
|
1c5bb4e |
This is part of the fix to a security issue, XSA-55.
|
|
|
1c5bb4e |
|
|
|
e2ce63b |
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
|
|
e2ce63b |
Acked-by: Ian Campbell <ian.campbell@citrix.com>
|
|
|
e2ce63b |
---
|
|
|
e2ce63b |
tools/xcutils/readnotes.c | 11 ++++++-----
|
|
|
e2ce63b |
1 files changed, 6 insertions(+), 5 deletions(-)
|
|
|
e2ce63b |
|
|
|
e2ce63b |
diff --git a/tools/xcutils/readnotes.c b/tools/xcutils/readnotes.c
|
|
|
e2ce63b |
index 15e5514..af8ea12 100644
|
|
|
e2ce63b |
--- a/tools/xcutils/readnotes.c
|
|
|
e2ce63b |
+++ b/tools/xcutils/readnotes.c
|
|
|
e2ce63b |
@@ -35,22 +35,23 @@ static void print_numeric_note(const char *prefix, struct elf_binary *elf,
|
|
|
e2ce63b |
}
|
|
|
e2ce63b |
|
|
|
e2ce63b |
static void print_l1_mfn_valid_note(const char *prefix, struct elf_binary *elf,
|
|
|
e2ce63b |
- const elf_note *note)
|
|
|
e2ce63b |
+ ELF_HANDLE_DECL(elf_note) note)
|
|
|
e2ce63b |
{
|
|
|
e2ce63b |
int descsz = elf_uval(elf, note, descsz);
|
|
|
e2ce63b |
- const uint32_t *desc32 = elf_note_desc(elf, note);
|
|
|
e2ce63b |
- const uint64_t *desc64 = elf_note_desc(elf, note);
|
|
|
e2ce63b |
+ ELF_PTRVAL_CONST_VOID desc = elf_note_desc(elf, note);
|
|
|
e2ce63b |
|
|
|
e2ce63b |
/* XXX should be able to cope with a list of values. */
|
|
|
e2ce63b |
switch ( descsz / 2 )
|
|
|
e2ce63b |
{
|
|
|
e2ce63b |
case 8:
|
|
|
e2ce63b |
printf("%s: mask=%#"PRIx64" value=%#"PRIx64"\n", prefix,
|
|
|
e2ce63b |
- desc64[0], desc64[1]);
|
|
|
e2ce63b |
+ elf_access_unsigned(elf, desc, 0, 8),
|
|
|
e2ce63b |
+ elf_access_unsigned(elf, desc, 8, 8));
|
|
|
e2ce63b |
break;
|
|
|
e2ce63b |
case 4:
|
|
|
e2ce63b |
printf("%s: mask=%#"PRIx32" value=%#"PRIx32"\n", prefix,
|
|
|
e2ce63b |
- desc32[0],desc32[1]);
|
|
|
e2ce63b |
+ (uint32_t)elf_access_unsigned(elf, desc, 0, 4),
|
|
|
e2ce63b |
+ (uint32_t)elf_access_unsigned(elf, desc, 4, 4));
|
|
|
e2ce63b |
break;
|
|
|
e2ce63b |
}
|
|
|
e2ce63b |
|
|
|
e2ce63b |
--
|
|
|
e2ce63b |
1.7.2.5
|
|
|
e2ce63b |
|