[binutils-gdb] Assertion fail at peicode.h:607

Alan Modra amodra@sourceware.org
Wed Oct 16 12:39:53 GMT 2024


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

commit 02d1e73bf63bb6d4e7c8b1eb35964cd2e00228d5
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Oct 16 08:30:07 2024 +1030

    Assertion fail at peicode.h:607
    
    This is the assertion that vars->string_ptr < vars->end_string_ptr,
    ie. when it fails we've overflowed the string buffer area.  Caused by
    allocating space for import_name but writing symbol_name, and they can
    be different.
    
            * peicode.h (SIZEOF_ILF_STRINGS): Revert 042f14505e change.

Diff:
---
 bfd/peicode.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bfd/peicode.h b/bfd/peicode.h
index eb5d6da6169..1a084fda05b 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -410,7 +410,7 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
 
       There will be two symbols for the imported value, one the symbol name
       and one with _imp__ prefixed.  Allowing for the terminating nul's this
-      is strlen (import_name) * 2 + 8 + 21 + strlen (source_dll).
+      is strlen (symbol_name) * 2 + 8 + 21 + strlen (source_dll).
 
       The strings in the string table must start STRING__SIZE_SIZE bytes into
       the table in order to for the string lookup code in coffgen/coffcode to
@@ -426,7 +426,7 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
 #define SIZEOF_ILF_EXT_SYMS	 (NUM_ILF_SYMS * sizeof (*vars.esym_table))
 #define SIZEOF_ILF_RELOCS	 (NUM_ILF_RELOCS * sizeof (*vars.reltab))
 #define SIZEOF_ILF_INT_RELOCS	 (NUM_ILF_RELOCS * sizeof (*vars.int_reltab))
-#define SIZEOF_ILF_STRINGS	 (strlen (import_name) * 2 + 8 \
+#define SIZEOF_ILF_STRINGS	 (strlen (symbol_name) * 2 + 8 \
 				  + 21 + strlen (source_dll)   \
 				  + NUM_ILF_SECTIONS * 9       \
 				  + STRING_SIZE_SIZE)


More information about the Binutils-cvs mailing list