From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id C3++OiM0Omo9iRQAWB0awg (envelope-from ) for ; Tue, 23 Jun 2026 03:22:11 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=ronald.hecht@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=eBLDXRka; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id E22011E098; Tue, 23 Jun 2026 03:22:11 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 612BE1E024 for ; Tue, 23 Jun 2026 03:22:10 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 319884BA2E21 for ; Tue, 23 Jun 2026 07:22:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 319884BA2E21 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=gmx.de header.i=ronald.hecht@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=eBLDXRka Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id 32D534BA2E04 for ; Tue, 23 Jun 2026 07:21:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 32D534BA2E04 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 32D534BA2E04 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=212.227.17.22 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1782199298; cv=none; b=n0qXFE2AZWQvMb+rW9WuQ5gUkzNwyFD7xk1X/vuGlP1IaRFUkf5jfueziFhGYNhH/Hxh7Hmh1swhXALM938b712RV94Tz3cFk8QL+CO9OKsR9V12LyJ9onZ1GHE6lbl+QNMpRShsG/TgzNZADuZeWkcD7Jb9nJOC/bYEZbD4e/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1782199298; c=relaxed/simple; bh=W61U3SdlKGbCHbc3F+e/nSv2e9w6lGBJrB6KD6ToixU=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=uF+Q+Q5SOslMt0rZ6wH/jGxX9K6sesQL6BgiDidZ5T5RNncpg+9oTuX6G83pmVoD454uhbCr/XUmB/go2Jccl5JJqWzUvl4rm/CeJGAsuePi8a9hdOQoxaRYmTGlirrstWdzKiyAMuHdruJn6s2cJeHtNybaJMMf7VZ36RfE6f4= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, secure) header.d=gmx.de header.i=ronald.hecht@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=eBLDXRka DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 32D534BA2E04 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1782199296; x=1782804096; i=ronald.hecht@gmx.de; bh=9vMU/xXNimRjmNmlxR7AvURLrGyJebRFH8bSjr82nbg=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=eBLDXRkakSLXcqKmm9lP0b0hN8/MVrE0iA5l/3sIc73HZD28dNNMOG5YcedU3tkn QKtm7grPU5f4Q5t5l1i1DPH6y/IBjy03l0W2EiQPjb1Pqe8sV3udrVefUZVJgQjRH NhGK/Zvk5MeWidB4iHdcTisgJ3vSFLwYrOHkqiMEhoQDREU8Rk0YVgRajTQ2JZCp7 vmdaomhSR0H9TpCJIHu/8nsiAqlFpKxTKAF+x0EUXArJ05Jt0GK/gw9MCpotrdjhJ Sjj2eTHIF4QXr8x6TFRHWceCM7I44MpZ4N+fk3RlK+puWGEuC/v7u7x137nCoPjuj VY0fNhxmEPKCufv83Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mt79F-1xR0kf3pKz-012fwO; Tue, 23 Jun 2026 09:16:28 +0200 Message-ID: <70fda660-e612-4fde-b1f9-0849f1b86191@gmx.de> Date: Tue, 23 Jun 2026 09:16:28 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] gdb: z80: Fix endless loop in frame unwinder and validate saved register types To: Kevin Buettner Cc: gdb-patches@sourceware.org References: <20260614150230.2fd33d6e@f44-mesa-1> <20260615070401.8671-1-ronald.hecht@gmx.de> <20260620130931.4004215f@f44-mesa-1> Content-Language: en-US From: Ronald Hecht In-Reply-To: <20260620130931.4004215f@f44-mesa-1> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:I9Zfd+8UlzmYSeK4l2iyBmmywHkHnl3P+k5syfqSuDoeIfYbiMj RN7hd6+a6cdIthCVfZr9wkMkF2iOCMIUJ1dIp+ujAUpZMtvjkzBr6uHhRZIJGErNfRcBUah ajckxdUXwUIdr6gQwqo9FDV8/j1MAvsyrV+FCWEVwQycXJV1i3M/wpHRkAM2GF9bYqxS/0Z bHDnDxTAhdVrjWBTvmrKw== UI-OutboundReport: notjunk:1;M01:P0:Z2ImRGYnec4=;I7OLqfItfMYtjdJ5xtUrYm75mw2 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 qFw5sYgRe7tlrli32M= X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Hi Kevin, Thank you for the review and the approval! Since I do not have write=20 access to the GDB repository, could you please push the patch on my behalf= ? Best regards, Ronald On 6/20/26 22:11, Kevin Buettner wrote: > Hi Ronald, > > This looks great! Thanks for making the changes I requested. > > On Mon, 15 Jun 2026 09:04:01 +0200 > Ronald Hecht wrote: > >> In z80_frame_unwind_cache, the loop scanning for the frame base pointer >> (for (;; ++sp)) could run into an endless loop or scan too far if the >> termination condition (sp < this_base) was not met due to corrupted >> or unexpected stack layouts. This patch introduces a loop_count to >> limit the scan to a maximum of 2 * addr_len iterations. >> >> Additionally, when iterating through saved registers to adjust their >> offsets into concrete addresses, the code now explicitly checks if >> the register actually holds an address using is_addr() before calling >> addr(). This prevents potential assertions or undefined behavior for >> registers that do not contain valid address data. >> >> gdb/ChangeLog: >> >> * z80-tdep.c (z80_frame_unwind_cache): Limit stack scanning >> to 2 * addr_len iterations to prevent endless loops. Check >> is_addr() before adjusting saved register addresses. > The ChangeLog entry isn't required, but there's no harm in having it in > the commit log. Regardless, don't add it to any ChangeLog files prior > to pushing it. > > Approved-By: Kevin Buettner >