From dd2532ad8af1676450114e4884ad748d528eafbe Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 20 Jun 2023 15:18:23 -0600 Subject: Avoid crash with absolute symbol A user supplied an executable and a remote logfile that could be used to crash gdb. The problem is that the BFD section for a particular symbol was null, because the section was not marked "allocated". Digging deeper, the problem was that elfread.c dropped the section for absolute symbols. This patch fixes the crash. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30431 --- gdb/elfread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gdb') diff --git a/gdb/elfread.c b/gdb/elfread.c index 799e3b9..7697106 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -216,7 +216,8 @@ record_minimal_symbol (minimal_symbol_reader &reader, ELF is malformed then this might not be the case. In that case don't create an msymbol that references an uninitialised section object. */ int section_index = 0; - if ((bfd_section_flags (bfd_section) & SEC_ALLOC) == SEC_ALLOC) + if ((bfd_section_flags (bfd_section) & SEC_ALLOC) == SEC_ALLOC + || bfd_section == bfd_abs_section_ptr) section_index = gdb_bfd_section_index (objfile->obfd.get (), bfd_section); struct minimal_symbol *result -- cgit v1.1