diff options
author | Freya Murphy <freya@freyacat.org> | 2024-09-22 16:02:42 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-09-22 16:02:42 -0400 |
commit | 85471efb4c740bb775c9ebdb10f775620c979598 (patch) | |
tree | c4afa5cf8108df4192e73488c4da271ed166217c /mld/obj.c | |
parent | update make clear (diff) | |
download | mips-85471efb4c740bb775c9ebdb10f775620c979598.tar.gz mips-85471efb4c740bb775c9ebdb10f775620c979598.tar.bz2 mips-85471efb4c740bb775c9ebdb10f775620c979598.zip |
mld done
Diffstat (limited to 'mld/obj.c')
-rw-r--r-- | mld/obj.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -171,6 +171,7 @@ static int load_symtabs(struct object *object) if (B32(hdr->sh_type) != SHT_SYMTAB) { symtab->len = 0; + symtab->size = 0; continue; } @@ -190,7 +191,8 @@ static int load_symtabs(struct object *object) } symtab->strtab = strtab; - symtab->len = len; + symtab->len = len / sizeof(Elf32_Sym); + symtab->size = len / sizeof(Elf32_Sym); symtab->syms = (Elf32_Sym *) (object->mapped + off); if (BOUND_CHK(object, len, off)) { @@ -263,8 +265,8 @@ static int map_file(struct object *obj, char *path) } obj->mapped_size = st.st_size; - obj->mapped = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, - obj->fd, 0); + obj->mapped = mmap(NULL, st.st_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE, obj->fd, 0); if (obj->mapped == MAP_FAILED) { PERROR("cannot map"); |