diff options
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r-- | bfd/elflink.h | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h index a808673..80c5b1c 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -1191,19 +1191,11 @@ elf_link_add_object_symbols (abfd, info) char *fnm, *anm; /* When we see DT_RPATH before DT_RUNPATH, we have - to free runpath. */ + to clear runpath. Do _NOT_ bfd_release, as that + frees all more recently bfd_alloc'd blocks as + well. */ if (rpath && elf_hash_table (info)->runpath) - { - struct bfd_link_needed_list *nn; - for (n = elf_hash_table (info)->runpath; - n != NULL; n = nn) - { - nn = n->next; - bfd_release (abfd, n); - } - bfd_release (abfd, elf_hash_table (info)->runpath); - elf_hash_table (info)->runpath = NULL; - } + elf_hash_table (info)->runpath = NULL; n = ((struct bfd_link_needed_list *) bfd_alloc (abfd, sizeof (struct bfd_link_needed_list))); |