From: kfraser@localhost.localdomain Date: Fri, 19 Jan 2007 15:03:02 +0000 (+0000) Subject: [XEN] Avoid void* arithmetic in elfnote code. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15371^2~132^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=24425e8b0eac1a8504bb7c9136d0a58181bf9e13;p=xen.git [XEN] Avoid void* arithmetic in elfnote code. From: Christoph Egger Signed-off-by: Keir Fraser --- diff --git a/xen/common/elf.c b/xen/common/elf.c index 8414f5e933..877c704201 100644 --- a/xen/common/elf.c +++ b/xen/common/elf.c @@ -102,7 +102,7 @@ static unsigned long long xen_guest_numeric(struct domain_setup_info *dsi, /* * Interface to the Xen ELF notes. */ -#define ELFNOTE_NAME(_n_) ((const void*)(_n_) + sizeof(*(_n_))) +#define ELFNOTE_NAME(_n_) ((const char*)(_n_) + sizeof(*(_n_))) #define ELFNOTE_DESC(_n_) (ELFNOTE_NAME(_n_) + (((_n_)->namesz+3)&~3)) #define ELFNOTE_NEXT(_n_) (ELFNOTE_DESC(_n_) + (((_n_)->descsz+3)&~3)) @@ -115,7 +115,7 @@ static int is_xen_elfnote_section(const char *image, const Elf_Shdr *shdr) for ( note = (const Elf_Note *)(image + shdr->sh_offset); note < (const Elf_Note *)(image + shdr->sh_offset + shdr->sh_size); - note = ELFNOTE_NEXT(note) ) + note = (const Elf_Note *)ELFNOTE_NEXT(note) ) { if ( !strncmp(ELFNOTE_NAME(note), "Xen", 4) ) return 1; @@ -134,7 +134,7 @@ static const Elf_Note *xen_elfnote_lookup( for ( note = (const Elf_Note *)dsi->__elfnote_section; note < (const Elf_Note *)dsi->__elfnote_section_end; - note = ELFNOTE_NEXT(note) ) + note = (const Elf_Note *)ELFNOTE_NEXT(note) ) { if ( strncmp(ELFNOTE_NAME(note), "Xen", 4) ) continue; @@ -227,9 +227,9 @@ int parseelfimage(struct domain_setup_info *dsi) image + ehdr->e_shoff + (h*ehdr->e_shentsize)); if ( !is_xen_elfnote_section(image, shdr) ) continue; - dsi->__elfnote_section = (const void *)image + shdr->sh_offset; + dsi->__elfnote_section = (const char *)image + shdr->sh_offset; dsi->__elfnote_section_end = - (const void *)image + shdr->sh_offset + shdr->sh_size; + (const char *)image + shdr->sh_offset + shdr->sh_size; break; }