]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
mips/dl: Handle addend in RELA entries.
authorVladimir Serbinenko <phcoder@gmail.com>
Fri, 9 Oct 2015 21:32:06 +0000 (23:32 +0200)
committerVladimir Serbinenko <phcoder@gmail.com>
Fri, 9 Oct 2015 21:32:06 +0000 (23:32 +0200)
grub-core/kern/mips/dl.c

index 8c057e01d3cf930ab83f12fa1f956e2dbab95552..e320a4ee76e515fbf3ba40d80511ab20e7efa7e8 100644 (file)
@@ -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)