From: Vladimir Serbinenko Date: Fri, 9 Oct 2015 21:32:06 +0000 (+0200) Subject: mips/dl: Handle addend in RELA entries. X-Git-Tag: 2.02-beta3~217 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2443e49bc2a165744dab596b4a9d1b04f52da83;p=thirdparty%2Fgrub.git mips/dl: Handle addend in RELA entries. --- diff --git a/grub-core/kern/mips/dl.c b/grub-core/kern/mips/dl.c index 8c057e01d..e320a4ee7 100644 --- a/grub-core/kern/mips/dl.c +++ b/grub-core/kern/mips/dl.c @@ -138,6 +138,10 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr, sym = (Elf_Sym *) ((char *) mod->symtab + mod->symsize * ELF_R_SYM (rel->r_info)); sym_value = sym->st_value; + if (s->sh_type == SHT_RELA) + { + sym_value += ((Elf_Rela *) rel)->r_addend; + } if (sym_value == (grub_addr_t) &__gnu_local_gp_dummy) sym_value = (grub_addr_t) mod->got; else if (sym_value == (grub_addr_t) &_gp_disp_dummy)