Browse Source

Fix buggy R_PPC_RELATIVE relocation. Symptom was that strings
internal to a library were not relocated correctly, specifically
sys_errlist[].

David Schleef 22 years ago
parent
commit
b76b3fcd18
1 changed files with 1 additions and 1 deletions
  1. 1 1
      ldso/ldso/powerpc/elfinterp.c

+ 1 - 1
ldso/ldso/powerpc/elfinterp.c

@@ -380,7 +380,7 @@ int _dl_parse_relocation_information(struct elf_resolve *tpnt,
 			}
 			break;
 		case R_PPC_RELATIVE:
-			*reloc_addr += (unsigned long)tpnt->loadaddr + addend;
+			*reloc_addr = (unsigned long)tpnt->loadaddr + addend;
 			break;
 		case R_PPC_ADDR32:
 			*reloc_addr += symbol_addr;