authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-03-03 18:53:47+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-03-03 18:53:47+01:00
logd23472747eb288e4c2332e03f6185c69e864f67d
tree5f865c849f556a69a568b9d5842883bfd213d2f1
parentf6eeb6c8ce83af392dc075e3f80846aefc791f42

elf: fully zero out symbol when appending to freelist


1 files changed, 9 insertions(+), 2 deletions(-)

src/link/Elf.zig+9-2
......@@ -2097,9 +2097,16 @@ fn freeAtom(self: *Elf, atom_index: Atom.Index) void {
20972097 // Appending to free lists is allowed to fail because the free lists are heuristics based anyway.
20982098 const local_sym_index = atom.getSymbolIndex().?;
20992099
2100 log.debug("adding %{d} to local symbols free list", .{local_sym_index});
21002101 self.local_symbol_free_list.append(gpa, local_sym_index) catch {};
2101 self.local_symbols.items[local_sym_index].st_info = 0;
2102 self.local_symbols.items[local_sym_index].st_shndx = 0;
2102 self.local_symbols.items[local_sym_index] = .{
2103 .st_name = 0,
2104 .st_info = 0,
2105 .st_other = 0,
2106 .st_shndx = 0,
2107 .st_value = 0,
2108 .st_size = 0,
2109 };
21032110 _ = self.atom_by_index_table.remove(local_sym_index);
21042111 self.getAtomPtr(atom_index).local_sym_index = 0;
21052112