From 59652a208f36de4f053551c3e6bf20a2acde5319 Mon Sep 17 00:00:00 2001 From: proski Date: Wed, 16 Jul 2008 06:55:42 +0000 Subject: [PATCH] 2008-07-16 Pavel Roskin * util/i386/efi/grub-mkimage.c (get_target_address): Return a pointer, not an integer. This fixes a warning and prevents precision loss on 64-bit systems. (relocate_addresses): Remove unneeded cast. --- ChangeLog | 7 +++++++ util/i386/efi/grub-mkimage.c | 7 +++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 952d98c6f..756fd3238 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-07-16 Pavel Roskin + + * util/i386/efi/grub-mkimage.c (get_target_address): Return a + pointer, not an integer. This fixes a warning and prevents + precision loss on 64-bit systems. + (relocate_addresses): Remove unneeded cast. + 2008-07-15 Pavel Roskin * kern/i386/ieee1275/init.c: Include grub/cache.h. diff --git a/util/i386/efi/grub-mkimage.c b/util/i386/efi/grub-mkimage.c index 57c1fc88d..123aaf093 100644 --- a/util/i386/efi/grub-mkimage.c +++ b/util/i386/efi/grub-mkimage.c @@ -272,10 +272,10 @@ get_symbol_address (Elf32_Ehdr *e, Elf32_Shdr *s, Elf32_Word i) } /* Return the address of a modified value. */ -static Elf32_Addr +static Elf32_Addr * get_target_address (Elf32_Ehdr *e, Elf32_Shdr *s, Elf32_Addr offset) { - return (Elf32_Addr) e + grub_le_to_cpu32 (s->sh_offset) + offset; + return (Elf32_Addr *) ((char *) e + grub_le_to_cpu32 (s->sh_offset) + offset); } /* Deal with relocation information. This function relocates addresses @@ -333,8 +333,7 @@ relocate_addresses (Elf32_Ehdr *e, Elf32_Shdr *sections, Elf32_Addr *target; offset = grub_le_to_cpu32 (r->r_offset); - target = (Elf32_Addr *) get_target_address (e, target_section, - offset); + target = get_target_address (e, target_section, offset); info = grub_le_to_cpu32 (r->r_info); sym_addr = get_symbol_address (e, symtab_section, ELF32_R_SYM (info));