From patchwork Thu Feb 13 06:31:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Terekhov, Mikhail via Gdb-patches" X-Patchwork-Id: 38019 Received: (qmail 96578 invoked by alias); 13 Feb 2020 06:31:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 96570 invoked by uid 89); 13 Feb 2020 06:31:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-pf1-f202.google.com Received: from mail-pf1-f202.google.com (HELO mail-pf1-f202.google.com) (209.85.210.202) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 13 Feb 2020 06:31:45 +0000 Received: by mail-pf1-f202.google.com with SMTP id o1so3126142pfg.6 for ; Wed, 12 Feb 2020 22:31:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=n/Pqmv1dEY3tadTTskNeAkmC/+iyUODcOfuSR3nlzAM=; b=AVqneMt0kAKOCzydNoJq4HQU440SJfb0Bs46PQvljkCSFXZmv9sURbY7ZVxHZrPFtQ Y7S+orKGk6QgK/lWfJiT/dgP16MGG8hEaFTK6cS6dO8T3o3lO5IAgFL0pDt15xuza0Rw 4QhdXkfPT4cRWf5+saM1jJFVkeSnRLM5jv8Ti8/H1pYO+DxxOq1w+fl3mDNekljl14hO 0htX0Zg6MLJl5wTzQCwG0G/LXgMoJstpvKm0az6Kk7K7MG5whoQnSizGdzI6gLMDIMH6 owNlLYeSoNSyR6/ZcZ8oru0CvipHOcQpyolccXipR/VXrHIYByGZeJzVWpz5EwagqWbv qkGQ== Date: Wed, 12 Feb 2020 22:31:40 -0800 Message-Id: <20200213063140.129700-1-tamur@google.com> Mime-Version: 1.0 Subject: [PATCH] Check for null result from gdb_demangle X-Patchwork-Original-From: "Ali Tamur via gdb-patches" From: "Terekhov, Mikhail via Gdb-patches" Reply-To: Ali Tamur To: gdb-patches@sourceware.org Cc: kmoy@google.com, Ali Tamur X-IsSubscribed: yes 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: * dwarf2/read.c (dwarf2_name): Add null check. --- gdb/dwarf2/read.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 7edbd9d7df..2f37c8a496 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -21770,6 +21770,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;