gcc/libbacktrace
Tom de Vries 68641fb77c [libbacktrace] Handle bsearch with NULL base in dwarf_lookup_pc
The call to bsearch in dwarf_lookup_pc can have NULL as base argument when
the nmemb argument is 0.  The base argument is required to be pointing to the
initial member of an array of nmemb objects.  It is not specified what
constitutes a valid pointer to an array of 0 objects, but glibc declares base
with attribute non-null, so the NULL will trigger a sanitizer runtime error.

Fix this by only calling bsearch if nmemb != 0.

2019-02-12  Tom de Vries  <tdevries@suse.de>

	PR libbacktrace/81983
	* dwarf.c (dwarf_lookup_pc): Don't call bsearch if nmemb == 0.

From-SVN: r268796
2019-02-12 14:00:59 +00:00
..
aclocal.m4 Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
alloc.c Update copyright years. 2019-01-01 13:31:55 +01:00
allocfail.c * allocfail.c (main): Increase portability of printf statement. 2019-01-20 15:09:02 +00:00
allocfail.sh Update copyright years. 2019-01-01 13:31:55 +01:00
atomic.c Update copyright years. 2019-01-01 13:31:55 +01:00
backtrace-supported.h.in Update copyright years. 2019-01-01 13:31:55 +01:00
backtrace.c [libbacktrace] Declare external backtrace fns noinline 2019-02-08 09:49:06 +00:00
backtrace.h PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
btest.c [libbacktrace] Add btest_lto 2019-02-10 03:16:09 +00:00
ChangeLog [libbacktrace] Handle bsearch with NULL base in dwarf_lookup_pc 2019-02-12 14:00:59 +00:00
ChangeLog.jit
config.h.in Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
configure [libbacktrace] Add test-cases exercising build-id and dwz 2019-01-29 16:25:46 +00:00
configure.ac [libbacktrace] Add test-cases exercising build-id and dwz 2019-01-29 16:25:46 +00:00
dwarf.c [libbacktrace] Handle bsearch with NULL base in dwarf_lookup_pc 2019-02-12 14:00:59 +00:00
edtest2.c Update copyright years. 2019-01-01 13:31:55 +01:00
edtest.c Update copyright years. 2019-01-01 13:31:55 +01:00
elf.c [libbacktrace] Fix .gnu_debugaltlink build-id check 2019-01-31 12:17:32 +00:00
fileline.c Update copyright years. 2019-01-01 13:31:55 +01:00
filetype.awk
install-debuginfo-for-buildid.sh.in [libbacktrace] Add test-cases exercising build-id and dwz 2019-01-29 16:25:46 +00:00
instrumented_alloc.c Update copyright years. 2019-01-01 13:31:55 +01:00
internal.h re PR libbacktrace/88890 (libbacktrace on 32-bit system with _FILE_OFFSET_BITS == 64) 2019-01-18 17:13:59 +00:00
Makefile.am [libbacktrace] Add btest_lto 2019-02-10 03:16:09 +00:00
Makefile.in [libbacktrace] Add btest_lto 2019-02-10 03:16:09 +00:00
mmap.c Update copyright years. 2019-01-01 13:31:55 +01:00
mmapio.c re PR libbacktrace/88890 (libbacktrace on 32-bit system with _FILE_OFFSET_BITS == 64) 2019-01-18 17:13:59 +00:00
nounwind.c Update copyright years. 2019-01-01 13:31:55 +01:00
pecoff.c [libbacktrace] Add altlink field to struct dwarf_data 2019-01-17 00:07:43 +00:00
posix.c Update copyright years. 2019-01-01 13:31:55 +01:00
print.c [libbacktrace] Declare external backtrace fns noinline 2019-02-08 09:49:06 +00:00
read.c re PR libbacktrace/88890 (libbacktrace on 32-bit system with _FILE_OFFSET_BITS == 64) 2019-01-18 17:13:59 +00:00
README
simple.c [libbacktrace] Declare external backtrace fns noinline 2019-02-08 09:49:06 +00:00
sort.c Update copyright years. 2019-01-01 13:31:55 +01:00
state.c Update copyright years. 2019-01-01 13:31:55 +01:00
stest.c Update copyright years. 2019-01-01 13:31:55 +01:00
test_format.c Update copyright years. 2019-01-01 13:31:55 +01:00
testlib.c Update copyright years. 2019-01-01 13:31:55 +01:00
testlib.h Update copyright years. 2019-01-01 13:31:55 +01:00
ttest.c Update copyright years. 2019-01-01 13:31:55 +01:00
unittest.c Update copyright years. 2019-01-01 13:31:55 +01:00
unknown.c Update copyright years. 2019-01-01 13:31:55 +01:00
xcoff.c [libbacktrace] Add altlink field to struct dwarf_data 2019-01-17 00:07:43 +00:00
ztest.c Update copyright years. 2019-01-01 13:31:55 +01:00

The libbacktrace library
Initially written by Ian Lance Taylor <iant@google.com>

The libbacktrace library may be linked into a program or library and
used to produce symbolic backtraces.  Sample uses would be to print a
detailed backtrace when an error occurs or to gather detailed
profiling information.

The libbacktrace library is provided under a BSD license.  See the
source files for the exact license text.

The public functions are declared and documented in the header file
backtrace.h, which should be #include'd by a user of the library.

Building libbacktrace will generate a file backtrace-supported.h,
which a user of the library may use to determine whether backtraces
will work.  See the source file backtrace-supported.h.in for the
macros that it defines.

As of September 2012, libbacktrace only supports ELF executables with
DWARF debugging information.  The library is written to make it
straightforward to add support for other object file and debugging
formats.