X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=src%2Fmodelops%2FfromFile.c;h=c46dd6c38dd727af0aaeec5aa0c569e65c010a65;hb=3c14755015340e48ae68aa874f672e7c9d289832;hp=85afe20165f1283092a139706acc84a77e578c93;hpb=5af52fe4fc36c1a355f4bfad58f80f52f822f768;p=centaur.git diff --git a/src/modelops/fromFile.c b/src/modelops/fromFile.c index 85afe20..c46dd6c 100644 --- a/src/modelops/fromFile.c +++ b/src/modelops/fromFile.c @@ -30,7 +30,8 @@ static void parseSymtab32(ElfuScn *ms, ElfuScn**origScnArr) ElfuSym *sym = malloc(sizeof(*sym)); assert(sym); - sym->name = symstr(ms, cursym->st_name); + sym->name = cursym->st_name; + sym->nameptr = symstr(ms, cursym->st_name); sym->value = cursym->st_value; sym->size = cursym->st_size; sym->bind = ELF32_ST_BIND(cursym->st_info); @@ -256,6 +257,7 @@ ElfuElf* elfu_mFromElf(Elf *e) CIRCLEQ_INIT(&me->phdrList); CIRCLEQ_INIT(&me->orphanScnList); me->shstrtab = NULL; + me->symtab = NULL; me->elfclass = gelf_getclass(e); assert(me->elfclass != ELFCLASSNONE); @@ -368,6 +370,7 @@ ElfuElf* elfu_mFromElf(Elf *e) switch (ms->shdr.sh_type) { case SHT_SYMTAB: + me->symtab = ms; case SHT_DYNSYM: if (me->elfclass == ELFCLASS32) { parseSymtab32(ms, secArray);