]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Assertion fail at peicode.h:607
authorAlan Modra <amodra@gmail.com>
Tue, 15 Oct 2024 22:00:07 +0000 (08:30 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 16 Oct 2024 05:32:05 +0000 (16:02 +1030)
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.

bfd/peicode.h

index eb5d6da6169cffb87b7720b475b2141b8141e89f..1a084fda05b73adc81859a40e3466109481e0421 100644 (file)
@@ -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)