aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-06-05 21:04:00 +0930
committerAlan Modra <amodra@gmail.com>2018-06-05 22:39:11 +0930
commit27b0767593284f97384b3597ebd211164f8c8b47 (patch)
tree1f82c304a2abc2acca2d865190b382e0963cd84a /bfd/ChangeLog
parent8347745522002d5c0093bac584a2eaf9386ad219 (diff)
downloadgdb-27b0767593284f97384b3597ebd211164f8c8b47.zip
gdb-27b0767593284f97384b3597ebd211164f8c8b47.tar.gz
gdb-27b0767593284f97384b3597ebd211164f8c8b47.tar.bz2
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.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r--bfd/ChangeLog9
1 files changed, 9 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d776d0b..3688cf2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2018-06-05 Alan Modra <amodra@gmail.com>
+
+ 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.
+
2018-06-04 Max Filippov <jcmvbkbc@gmail.com>
* elf32-xtensa.c (xtensa_read_table_entries): Make global.