From 1c1f00f7079748a9c8e98e4e540387b5dc1f283d Mon Sep 17 00:00:00 2001 From: Andrew Chambers Date: Tue, 19 Oct 2021 18:06:48 +1300 Subject: Properly reinit the symtab. --- main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 8713b0c..9463860 100644 --- a/main.c +++ b/main.c @@ -125,8 +125,6 @@ getsection(const char* name) static void initsections(void) { - Elf64_Sym elfsym; - shstrtab = newsection(); secaddbyte(shstrtab, 0); shstrtab->hdr.sh_name = elfstr(shstrtab, ".shstrtab"); @@ -142,8 +140,6 @@ initsections(void) symtab->hdr.sh_type = SHT_SYMTAB; symtab->hdr.sh_link = strtab->idx; symtab->hdr.sh_entsize = sizeof(Elf64_Sym); - memset(&elfsym, 0, sizeof(elfsym)); - secaddbytes(symtab, &elfsym, sizeof(Elf64_Sym)); bss = newsection(); bss->hdr.sh_name = elfstr(shstrtab, ".bss"); @@ -875,9 +871,13 @@ addtosymtab(Symbol* sym) static void fillsymtab(void) { + Elf64_Sym elfsym; Symbol* sym; size_t i; + memset(&elfsym, 0, sizeof(elfsym)); + secaddbytes(symtab, &elfsym, sizeof(Elf64_Sym)); + // Local symbols for (i = 0; i < symbols->cap; i++) { if (!symbols->keys[i].str) -- cgit v1.2.3