fix symtab map bad offset
This commit is contained in:
parent
9a3ccc2fc1
commit
f918f8fe1c
3 changed files with 3 additions and 2 deletions
|
@ -55,12 +55,13 @@ int symtab_get(struct symbol_table *symtab, Elf32_Sym **res, const char *name,
|
|||
const char *symname = symtab->strtab->data + B32(sym->st_name);
|
||||
if (strcmp(name, symname) != 0)
|
||||
continue;
|
||||
|
||||
// only allow retrevial of local variables from the
|
||||
// same object
|
||||
if (sym->st_info >> 4 != STB_GLOBAL && symtab->map != NULL &&
|
||||
obj_idx >= 0) {
|
||||
struct object *obj = symtab->map->meta[i];
|
||||
// we need to change the index by one since
|
||||
// symbol tables always start will a NULl symbol
|
||||
struct object *obj = symtab->map->meta[i - 1];
|
||||
if (obj->index != (uint32_t)obj_idx)
|
||||
continue;
|
||||
} else if (obj_idx < 0 && sym->st_info >> 4 != STB_GLOBAL) {
|
||||
|
|
BIN
mld/vgcore.4024670
Normal file
BIN
mld/vgcore.4024670
Normal file
Binary file not shown.
BIN
test/msim/test
BIN
test/msim/test
Binary file not shown.
Loading…
Reference in a new issue