From patchwork Thu Apr 6 15:04:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Wielaard X-Patchwork-Id: 67466 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8D0B13857029 for ; Thu, 6 Apr 2023 15:04:44 +0000 (GMT) X-Original-To: elfutils-devel@sourceware.org Delivered-To: elfutils-devel@sourceware.org Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 88B963857730 for ; Thu, 6 Apr 2023 15:04:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 88B963857730 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from r6.localdomain (82-217-174-174.cable.dynamic.v4.ziggo.nl [82.217.174.174]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 89985302BB02; Thu, 6 Apr 2023 17:04:37 +0200 (CEST) Received: by r6.localdomain (Postfix, from userid 1000) id 632B3340082; Thu, 6 Apr 2023 17:04:37 +0200 (CEST) From: Mark Wielaard To: elfutils-devel@sourceware.org Cc: Mark Wielaard Subject: [PATCH] backends: Check results for NULL early in dwarf_peeled_die_type Date: Thu, 6 Apr 2023 17:04:24 +0200 Message-Id: <20230406150424.476494-1-mark@klomp.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Spam-Status: No, score=-3035.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_BARRACUDACENTRAL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , Errors-To: elfutils-devel-bounces+patchwork=sourceware.org@sourceware.org Sender: "Elfutils-devel" Calling dwarf_peeled_die_type with a NULL results pointer is an error, check early that result is not NULL so dwarf_formref_die and dwarf_peel_type won't try to set the NULL Dwarf_Die. * backends/libebl_CPU.h (dwarf_peeled_die_type): Move check for results == NULL to start of function. Signed-off-by: Mark Wielaard --- backends/libebl_CPU.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backends/libebl_CPU.h b/backends/libebl_CPU.h index 3b2cc3e4..d138f5f7 100644 --- a/backends/libebl_CPU.h +++ b/backends/libebl_CPU.h @@ -66,13 +66,13 @@ dwarf_peeled_die_type (Dwarf_Die *die, Dwarf_Die *result) /* The function has no return value, like a `void' function in C. */ return 0; - if (dwarf_formref_die (attr, result) == NULL) + if (result == NULL) return -1; - if (dwarf_peel_type (result, result) != 0) + if (dwarf_formref_die (attr, result) == NULL) return -1; - if (result == NULL) + if (dwarf_peel_type (result, result) != 0) return -1; int tag = dwarf_tag (result);