OSDN Git Service

objtool: Don't free memory in elf_close()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 30 May 2023 17:21:01 +0000 (10:21 -0700)
committerJosh Poimboeuf <jpoimboe@kernel.org>
Wed, 7 Jun 2023 17:03:19 +0000 (10:03 -0700)
It's not necessary, objtool's about to exit anyway.

Link: https://lore.kernel.org/r/74bdb3058b8f029db8d5b3b5175f2a200804196d.1685464332.git.jpoimboe@kernel.org
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
tools/objtool/elf.c

index 8d491b2..8d53f18 100644 (file)
@@ -1350,30 +1350,14 @@ int elf_write(struct elf *elf)
 
 void elf_close(struct elf *elf)
 {
-       struct section *sec, *tmpsec;
-       struct symbol *sym, *tmpsym;
-       struct reloc *reloc, *tmpreloc;
-
        if (elf->elf)
                elf_end(elf->elf);
 
        if (elf->fd > 0)
                close(elf->fd);
 
-       list_for_each_entry_safe(sec, tmpsec, &elf->sections, list) {
-               list_for_each_entry_safe(sym, tmpsym, &sec->symbol_list, list) {
-                       list_del(&sym->list);
-                       hash_del(&sym->hash);
-               }
-               list_for_each_entry_safe(reloc, tmpreloc, &sec->reloc_list, list) {
-                       list_del(&reloc->list);
-                       hash_del(&reloc->hash);
-               }
-               list_del(&sec->list);
-               free(sec->reloc_data);
-       }
-
-       free(elf->symbol_data);
-       free(elf->section_data);
-       free(elf);
+       /*
+        * NOTE: All remaining allocations are leaked on purpose.  Objtool is
+        * about to exit anyway.
+        */
 }