From c2443e49bc2a165744dab596b4a9d1b04f52da83 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 9 Oct 2015 23:32:06 +0200 Subject: [PATCH] mips/dl: Handle addend in RELA entries. --- grub-core/kern/mips/dl.c | 4 ++++ 1 file changed, 4 insertions(+) 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)