bfd: fix potential missing seek If a file was closed by cache and then bfd_open_file was called followed by e.g. bfd_seek to the original position, the seek would be optimized out while the real file position was still zero (as fopened). I added `bfd_io_force` to force the seek at next IO occasion. This could lead e.g. to appearence of a corrupted object in ld: symbol number 0 uses unsupported binding of 6 or invalid string offset #X >= #Y for section Signed-off-by: Roman Kapl <code@rkapl.cz>
diff --git a/bfd/cache.c b/bfd/cache.c index 3bf9c94..3342e2d 100644 --- a/bfd/cache.c +++ b/bfd/cache.c
@@ -177,6 +177,7 @@ BFD_ASSERT (open_files > 0); --open_files; abfd->flags |= BFD_CLOSED_BY_CACHE; + abfd->last_io = bfd_io_force; return ret; }