From aaf9875ef9252ec42bafac076421cc5ff22965ad Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 26 Aug 2020 14:23:42 +0930 Subject: [PATCH] PR26431 UBSAN: pe-dll.c:568 null pointer bsearch PR 26431 * pe-dll.c (auto_export): Don't call bsearch with zero count. --- ld/ChangeLog | 5 +++++ ld/pe-dll.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index a12f91302b..882e1c920e 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2020-08-26 Alan Modra + + PR 26431 + * pe-dll.c (auto_export): Don't call bsearch with zero count. + 2020-08-25 Alan Modra * 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 3e8fe1be9b..39c8e4c5ea 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) -- 2.34.1