| Message ID | 006501dd21f7$5fa6ab60$1ef40220$@nextmovesoftware.com |
|---|---|
| State | New |
| Headers |
Return-Path: <gdb-patches-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 417494BA9017 for <patchwork@sourceware.org>; Sat, 1 Aug 2026 20:51:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 417494BA9017 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=nextmovesoftware.com header.i=@nextmovesoftware.com header.a=rsa-sha256 header.s=default header.b=ESghEK23 X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from server.nextmovesoftware.com (server.nextmovesoftware.com [69.48.154.134]) by sourceware.org (Postfix) with ESMTPS id 69C364B9DB51 for <gdb-patches@sourceware.org>; Sat, 1 Aug 2026 20:50:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 69C364B9DB51 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=nextmovesoftware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=nextmovesoftware.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 69C364B9DB51 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=69.48.154.134 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785617424; cv=none; b=xaCKx41s4A1TYISxxfIvac9wEUhN9+KmZHfihQW1sXmaFNhjq0a3zbt+kFHAAjszTW30UoUb8kxiTx0dIPb6qrkmV/1XEmpdcAyQ4QGlt+AiKvcL0NiwH/BQRDg6v4y6BVYzihVFEsEb4onp6ZLbN4D8VFc0CtyZTZhCnnbHzUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785617424; c=relaxed/simple; bh=WpZ+uJFz7P8JPFwccJ+rxGZ74IQUENu7pQ0XVPJJ3gQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=ADmbIscxYI0Ip/8ymnLID9v4dUr30uUfDob7Z5N5zS/xITu7sJm+ZyBPIHPEBNS3Aqfm90gRfKgLntdmmM93oDJ1TSlRu9l3OhYg+3oIrysuYwKGW7euSEbs8U4m/LUuJwYBWre97nWOcKwDGhqk5UPYd8BuK1xkloSXj15p0Sc= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=nextmovesoftware.com header.i=@nextmovesoftware.com header.a=rsa-sha256 header.s=default header.b=ESghEK23 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 69C364B9DB51 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=nextmovesoftware.com; s=default; h=Content-Type:MIME-Version:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=oUXrto4WqJTS1XrTulSMzu0MW4OKl/o/ztU5wg3PoXs=; b=ESghEK23t6LKugWPMZW4jjf47Y qBcOo5rGsfQEBxg8JMsbto/9wGNWgBFLl6gXtit1YAOO1KwqsNOpImINjC1QUETrtyldaiasgHP62 EbzwwehvodAF6A9lktUGaeLzUiTQcsK5BPwU4CsE5v3OFB7LL+GwEjEejJGF914l3/VJe65ayp42t YX2361Trxfwbsqxibl7uswXaYMTLOOue+mS3e4qk0w0T/GdHpACisclsdEPWOHapsNRPMVKRqUoJM 4rEqlCxOT5JL3vnnjfm8vF8WEys1XO7R8XCNMCdvraxtV6hVebgFNdc9uOBZ6AABcWXZ+NYvc5NNT pOWIvtqQ==; Received: from [168.86.198.175] (port=53957 helo=Dell) by server.nextmovesoftware.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.99.5) (envelope-from <roger@nextmovesoftware.com>) id 1wqGf1-00000001r7g-1vj7; Sat, 01 Aug 2026 16:50:23 -0400 From: "Roger Sayle" <roger@nextmovesoftware.com> To: <gdb-patches@sourceware.org> Cc: "'Hans-Peter Nilsson'" <hp@axis.com> Subject: [PATCH] Avoid seg fault in sim/cris/sim-if.c Date: Sat, 1 Aug 2026 21:50:17 +0100 Message-ID: <006501dd21f7$5fa6ab60$1ef40220$@nextmovesoftware.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0066_01DD21FF.C16DAB70" X-Mailer: Microsoft Outlook 16.0 Thread-Index: Ad0h9XiUAwf83i5MSCauy8+KkqhkXg== Content-Language: en-gb X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server.nextmovesoftware.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - nextmovesoftware.com X-Get-Message-Sender-Via: server.nextmovesoftware.com: authenticated_id: roger@nextmovesoftware.com X-Authenticated-Sender: server.nextmovesoftware.com: roger@nextmovesoftware.com X-Source: X-Source-Args: X-Source-Dir: X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list <gdb-patches.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=subscribe> Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
Avoid seg fault in sim/cris/sim-if.c
|
|
Checks
| Context | Check | Description |
|---|---|---|
| linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 | success | Build passed |
| linaro-tcwg-bot/tcwg_gdb_build--master-arm | success | Build passed |
| linaro-tcwg-bot/tcwg_gdb_check--master-arm | success | Test passed |
| linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 | success | Test passed |
Commit Message
Roger Sayle
Aug. 1, 2026, 8:50 p.m. UTC
Typing "target sim" in GDB built with --target=cris-elf, crashes immediately after being launched with "gdb ./a.out". The issue is that STATE_PROG_ARGV may return NULL, and this isn't tested before dereferencing the pointer. If approved, please could someone commit this for me. Thanks in advance. 2026-08-01 Roger Sayle <roger@nextmovesoftware.com> ChangeLog * sim/cris/sim-if.c (sim_open): Check that prog_argv isn't NULL.
Comments
"Roger Sayle" <roger@nextmovesoftware.com> writes: > Typing "target sim" in GDB built with --target=cris-elf, crashes immediately > after being launched with "gdb ./a.out". The issue is that STATE_PROG_ARGV > may return NULL, and this isn't tested before dereferencing the pointer. > > If approved, please could someone commit this for me. > Thanks in advance. I pushed this. But also, I owe you an apology. For some reason I was not able to apply this patch directly from my email client to a git tree as usual, so I ended up copying the contents by hand. In the process I forgot to make you the patch author, something I only spotted after pushing to master. This was not intentional, and I really do apologise, I did not intend to take credit for this fix. Unfortunately, there's no simple way I can fix this mistake. I will try to take greater care in future. Thanks, Andrew > > 2026-08-01 Roger Sayle <roger@nextmovesoftware.com> > > ChangeLog > * sim/cris/sim-if.c (sim_open): Check that prog_argv isn't NULL. > > > diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c > index 12c80983208..3babbb058b7 100644 > --- a/sim/cris/sim-if.c > +++ b/sim/cris/sim-if.c > @@ -770,8 +770,9 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd, > for (envc = 0; environ[envc] != NULL; envc++) > len += strlen (environ[envc]) + 1; > > - for (i = 0; prog_argv[i] != NULL; my_argc++, i++) > - len += strlen (prog_argv[i]) + 1; > + if (prog_argv != NULL) > + for (i = 0; prog_argv[i] != NULL; my_argc++, i++) > + len += strlen (prog_argv[i]) + 1; > > envstart = (envtop - len) & ~8191; >
> From: "Roger Sayle" <roger@nextmovesoftware.com> > Date: Mon, 3 Aug 2026 13:28:41 +0100 > Hi Andrew, > No worries. The one line change is obvious, and there's really nothing > to take credit for. I'm far more pleased that you've pushed a fix. > Thank you very much for taking care of this. > > Cheers, > Roger > -- > > > -----Original Message----- > > From: Andrew Burgess <aburgess@redhat.com> > > Sent: 03 August 2026 13:10 > > To: Roger Sayle <roger@nextmovesoftware.com>; gdb-patches@sourceware.org > > Cc: 'Hans-Peter Nilsson' <hp@axis.com> > > Subject: Re: [PATCH] Avoid seg fault in sim/cris/sim-if.c > > > > "Roger Sayle" <roger@nextmovesoftware.com> writes: > > > > > Typing "target sim" in GDB built with --target=cris-elf, crashes > > > immediately after being launched with "gdb ./a.out". The issue is > > > that STATE_PROG_ARGV may return NULL, and this isn't tested before > > dereferencing the pointer. > > > > > > If approved, please could someone commit this for me. > > > Thanks in advance. > > > > I pushed this. > > [Apology for mortal sin elided] > > Thanks, > > Andrew > > > > > > > > > > 2026-08-01 Roger Sayle <roger@nextmovesoftware.com> > > > > > > ChangeLog > > > * sim/cris/sim-if.c (sim_open): Check that prog_argv isn't NULL. Thank you both! I've (obviously) never run "target sim" in gdb for cris-elf. That sin may be more grave than forgetting to assign authorship when applying a one-line patch... It was always on the TODO-list to wire up the hooks and plugging in the pieces, to get the simulator running built-in with gdb. I'm glad this got it working. If there's actually something more needed, then at least this serves as defensive programming. I see it was already rightly committed while I was happily on vacation, so just a thank you. brgds, H-P
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c index 12c80983208..3babbb058b7 100644 --- a/sim/cris/sim-if.c +++ b/sim/cris/sim-if.c @@ -770,8 +770,9 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd, for (envc = 0; environ[envc] != NULL; envc++) len += strlen (environ[envc]) + 1; - for (i = 0; prog_argv[i] != NULL; my_argc++, i++) - len += strlen (prog_argv[i]) + 1; + if (prog_argv != NULL) + for (i = 0; prog_argv[i] != NULL; my_argc++, i++) + len += strlen (prog_argv[i]) + 1; envstart = (envtop - len) & ~8191;