PR26431 UBSAN: pe-dll.c:568 null pointer bsearch
authorAlan Modra <amodra@gmail.com>
Wed, 26 Aug 2020 04:53:42 +0000 (14:23 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 26 Aug 2020 13:53:44 +0000 (23:23 +0930)
PR 26431
* pe-dll.c (auto_export): Don't call bsearch with zero count.

ld/ChangeLog
ld/pe-dll.c

index a12f91302b72f988c2293d2a4312a930c64022e1..882e1c920e35b30d612336fe9e3f08e0ed942a05 100644 (file)
@@ -1,3 +1,8 @@
+2020-08-26  Alan Modra  <amodra@gmail.com>
+
+       PR 26431
+       * pe-dll.c (auto_export): Don't call bsearch with zero count.
+
 2020-08-25  Alan Modra  <amodra@gmail.com>
 
        * testsuite/ld-libs/libs.exp: Don't run on sh-pe, tic30 or tic54x.
index 3e8fe1be9b3071e59fa8f8250ea73509d1f44093..39c8e4c5ea790d39123f0286793a90b432855c2b 100644 (file)
@@ -565,8 +565,9 @@ auto_export (bfd *abfd, def_file *d, const char *n)
   key.name = key.its_name = (char *) n;
 
   /* Return false if n is in the d->exports table.  */
-  if (bsearch (&key, d->exports, d->num_exports,
-              sizeof (pe_def_file->exports[0]), pe_export_sort))
+  if (d->num_exports != 0
+      && bsearch (&key, d->exports, d->num_exports,
+                 sizeof (pe_def_file->exports[0]), pe_export_sort))
     return 0;
 
   if (pe_dll_do_default_excludes)