From c84481fbc7de7d15ff7476b3b9cd2713f81feaa3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 14 Jun 2013 16:39:36 +0100 Subject: libelf: Make all callers call elf_check_broken This arranges that if the new pointer reference error checking tripped, we actually get a message about it. In this patch these messages do not change the actual return values from the various functions: so pointer reference errors do not prevent loading. This is for fear that some existing kernels might cause the code to make these wild references, which would then break, which is not a good thing in a security patch. In xen/arch/x86/domain_build.c we have to introduce an "out" label and change all of the "return rc" beyond the relevant point into "goto out". This is part of the fix to a security issue, XSA-55. Signed-off-by: Ian Jackson Reviewed-by: George Dunlap Reviewed-by: Andrew Cooper v5: Fix two whitespace errors. v3.1: Add error check to xc_dom_parse_elf_kernel. Move check in xc_hvm_build_x86.c:setup_guest to right place. v2 was Acked-by: Ian Campbell v2 was Reviewed-by: Konrad Rzeszutek Wilk v2: Style fixes. --- tools/xcutils/readnotes.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tools/xcutils') diff --git a/tools/xcutils/readnotes.c b/tools/xcutils/readnotes.c index cfae99486c..d1f7a30f73 100644 --- a/tools/xcutils/readnotes.c +++ b/tools/xcutils/readnotes.c @@ -301,6 +301,9 @@ int main(int argc, char **argv) printf("__xen_guest: %s\n", elf_strfmt(&elf, elf_section_start(&elf, shdr))); + if (elf_check_broken(&elf)) + printf("warning: broken ELF: %s\n", elf_check_broken(&elf)); + return 0; } -- cgit v1.2.3