https://sourceware.org/bugzilla/show_bug.cgi?id=25993

--- Comment #13 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Alan Modra <amo...@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0490dd41ae89e66efd8b3cee122c189a481269de

commit 0490dd41ae89e66efd8b3cee122c189a481269de
Author: Alan Modra <amo...@gmail.com>
Date:   Thu May 21 23:34:58 2020 +0930

    Re: PR25993, read of freed memory

    git commit 7b958a48e132 put the bfd filename in the bfd objalloc
    memory.  That means the filename is freed by _bfd_free_cached_info.
    Which is called by _bfd_compute_and_write_armap to tidy up symbol
    tables after they are done with.

    Unfortunately, _bfd_write_archive_contents wants to seek and read from
    archive elements after that point, and if the number of elements
    exceeds max_open_files in cache.c then some of those elements will
    have their files closed.  To reopen, you need the filename.

            PR 25993
            * opncls.c (_bfd_free_cached_info): Keep a copy of the bfd
            filename.
            (_bfd_delete_bfd): Free the copy.
            (_bfd_new_bfd): Free nbfd->memory on error.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to