summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-08-26 14:23:42 +0930
committerAlan Modra <amodra@gmail.com>2020-08-26 23:23:44 +0930
commitaaf9875ef9252ec42bafac076421cc5ff22965ad (patch)
tree58096aa2a533deff2b72397bb2a5ecd561599b86 /ld
parent9863cbb7bd3495107a5b1b4d887c95d859c9a35e (diff)
downloadbinutils-gdb-aaf9875ef9252ec42bafac076421cc5ff22965ad.tar.gz
PR26431 UBSAN: pe-dll.c:568 null pointer bsearch
PR 26431 * pe-dll.c (auto_export): Don't call bsearch with zero count.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/pe-dll.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index a12f91302b7..882e1c920e3 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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.
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 3e8fe1be9b3..39c8e4c5ea7 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -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)