From 2fbe667884bc37e710f12937ded1b355be42fa56 Mon Sep 17 00:00:00 2001 From: Roman Kapl Date: Sat, 29 Nov 2025 12:45:27 +0100 Subject: [PATCH] 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 --- bfd/cache.c | 1 + 1 file changed, 1 insertion(+) diff --git a/bfd/cache.c b/bfd/cache.c index 3bf9c9449a4..3342e2d5008 100644 --- a/bfd/cache.c +++ b/bfd/cache.c @@ -177,6 +177,7 @@ bfd_cache_delete (bfd *abfd) BFD_ASSERT (open_files > 0); --open_files; abfd->flags |= BFD_CLOSED_BY_CACHE; + abfd->last_io = bfd_io_force; return ret; } -- 2.47.3