bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/23254] ld.bfd mishandles file pointers while scanning archive wi


From: cvs-commit at gcc dot gnu.org
Subject: [Bug ld/23254] ld.bfd mishandles file pointers while scanning archive with LTO members, causing "malformed archive" errors for a well-formed archive
Date: Tue, 05 Jun 2018 13:10:47 +0000

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

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

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

commit 27b0767593284f97384b3597ebd211164f8c8b47
Author: Alan Modra <address@hidden>
Date:   Tue Jun 5 21:04:00 2018 +0930

    PR23254, ld.bfd mishandles file pointers while scanning archive

    Best practice is to not mix lseek/read with fseek/fread on the same
    underlying file descriptor, as not all stdio implementations will cope.
    Since the plugin uses lseek/read while bfd uses fseek/fread this patch
    reopens the file for exclusive use by the plugin rather than trying to
    restore the file descriptor.  That allows the plugin to read the file
    after plugin_call_claim_file too.

    bfd/
        PR 23254
        * plugin.c (bfd_plugin_open_input): Allow for possibility of
        nested archives.  Open file again for plugin.
        (try_claim): Don't save and restore file position.  Close file
        if not claimed.
        * sysdep.h (O_BINARY): Define.
    ld/
        PR 23254
        * plugin.c (plugin_call_claim_file): Revert 2016-07-19 patch.
        (plugin_object_p): Don't dup file descriptor.

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]