Skip to content

Commit

Permalink
libdyld: fix DT_HASH address calculation.
Browse files Browse the repository at this point in the history
  • Loading branch information
whitequark committed Aug 1, 2015
1 parent 04934ff commit d43e470
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions software/libdyld/dyld.c
Expand Up @@ -21,8 +21,8 @@ static int fixup_rela(Elf32_Addr base, Elf32_Rela *rela,
value = resolve_import(&strtab[sym->st_name]);
if(value == 0) {
static char error[256];
error[scnprintf(error, sizeof(error), "ELF object has an unresolved symbol: %s",
&strtab[sym->st_name])] = 0;
snprintf(error, sizeof(error),
"ELF object has an unresolved symbol: %s", &strtab[sym->st_name]);
*error_out = error;
return 0;
}
Expand Down Expand Up @@ -95,7 +95,7 @@ int dyld_load(void *shlib, Elf32_Addr base,
case DT_RELASZ: relanum = dyn->d_un.d_val / sizeof(Elf32_Rela); break;
case DT_JMPREL: pltrel = (Elf32_Rela *)(base + dyn->d_un.d_ptr); break;
case DT_PLTRELSZ: pltrelnum = dyn->d_un.d_val / sizeof(Elf32_Rela); break;
case DT_HASH: hash = (Elf32_Word *)dyn->d_un.d_val; break;
case DT_HASH: hash = (Elf32_Word *)(base + dyn->d_un.d_ptr); break;
case DT_INIT: init = dyn->d_un.d_val; break;

case DT_REL:
Expand Down

0 comments on commit d43e470

Please sign in to comment.