From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122956 invoked by alias); 21 Feb 2020 15:20:06 -0000 Mailing-List: contact gdb-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: gdb-cvs-owner@sourceware.org List-Subscribe: Sender: gdb-cvs-owner@sourceware.org Received: (qmail 122901 invoked by uid 306); 21 Feb 2020 15:20:05 -0000 Date: Fri, 21 Feb 2020 15:20:00 -0000 Message-ID: <20200221152005.122899.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Check for null result from gdb_demangle X-Act-Checkin: binutils-gdb X-Git-Author: Ali Tamur via gdb-patches X-Git-Refname: refs/heads/master X-Git-Oldrev: a4425a57c7ad127b30cdfe271c870d5c8ebcfad7 X-Git-Newrev: 4f180d5396741eb65badba70cf5077b7d48f8641 X-SW-Source: 2020-02/txt/msg00214.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4f180d5396741eb65badba70cf5077b7d48f8641 commit 4f180d5396741eb65badba70cf5077b7d48f8641 Author: Ali Tamur via gdb-patches Date: Fri Feb 21 08:19:21 2020 -0700 Check for null result from gdb_demangle I am sending this patch on behalf of kmoy@google.com, who discovered the bug and wrote the fix. gdb_demangle can return null for strings that don't properly demangle. The null check was mistakenly removed in commit 43816ebc335. Without this check, GDB aborts when loading symbols from some binaries. gdb/ChangeLog 2020-02-21 Ali Tamur * dwarf2/read.c (dwarf2_name): Add null check. Diff: --- gdb/ChangeLog | 4 ++++ gdb/dwarf2/read.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 748788a..d480ff4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2020-02-21 Ali Tamur + + * dwarf2/read.c (dwarf2_name): Add null check. + 2020-02-20 Tom Tromey * dwarf2/read.c (dwarf2_find_containing_comp_unit): Use ">", not diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index f998fe6..46d510e 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -21756,6 +21756,8 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) { gdb::unique_xmalloc_ptr demangled (gdb_demangle (DW_STRING (attr), DMGL_TYPES)); + if (demangled == nullptr) + return nullptr; const char *base;