Bladeren bron

err, x86_64 is RELA, not REL

Mike Frysinger 20 jaren geleden
bovenliggende
commit
935404384b
1 gewijzigde bestanden met toevoegingen van 4 en 4 verwijderingen
  1. 4 4
      ldso/ldso/x86_64/dl-sysdep.h

+ 4 - 4
ldso/ldso/x86_64/dl-sysdep.h

@@ -102,14 +102,14 @@ elf_machine_load_address (void)
 }
 
 static __always_inline void
-elf_machine_relative (Elf64_Addr load_off, const Elf64_Addr rel_addr,
-                      Elf64_Word relative_count)
+elf_machine_relative(Elf64_Addr load_off, const Elf64_Addr rel_addr,
+                     Elf64_Word relative_count)
 {
-	Elf64_Rel * rpnt = (void *) rel_addr;
+	Elf64_Rela *rpnt = (void *)rel_addr;
 	--rpnt;
 	do {
 		Elf64_Addr *const reloc_addr = (void *) (load_off + (++rpnt)->r_offset);
 
-		*reloc_addr += load_off;
+		*reloc_addr = load_off + rpnt->r_addend;
 	} while (--relative_count);
 }