PR26478 UBSAN: mmo.c:2941 null pointer memcpy
authorAlan Modra <amodra@gmail.com>
Wed, 26 Aug 2020 09:02:30 +0000 (18:32 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 26 Aug 2020 13:53:45 +0000 (23:23 +0930)
PR 26478
* mmo.c (mmo_write_symbols_and_terminator): Don't memcpy empty table.

bfd/ChangeLog
bfd/mmo.c

index 3a85c3eb9a5de3fe4da324f06d12d77fc13b265d..86fccfb79d92a4dc28374d9d3e2f79bb586205cd 100644 (file)
@@ -1,3 +1,8 @@
+2020-08-26  Alan Modra  <amodra@gmail.com>
+
+       PR 26478
+       * mmo.c (mmo_write_symbols_and_terminator): Don't memcpy empty table.
+
 2020-08-26  Alan Modra  <amodra@gmail.com>
 
        PR 26475
index 5209736a50540b2edc67435ff4bebf3cf2063ae7..92c51a4f6378a51a5481305dd42fa19198724472 100644 (file)
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -2938,7 +2938,8 @@ mmo_write_symbols_and_terminator (bfd *abfd)
   if (table == NULL)
     return FALSE;
 
-  memcpy (table, orig_table, count * sizeof (asymbol *));
+  if (count != 0)
+    memcpy (table, orig_table, count * sizeof (asymbol *));
 
   /* Move :Main (if there is one) to the first position.  This is
      necessary to get the same layout of the trie-tree when linking as