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