* [PATCH] Avoid seg fault in sim/cris/sim-if.c
@ 2026-08-01 20:50 Roger Sayle
2026-08-03 12:10 ` Andrew Burgess
0 siblings, 1 reply; 3+ messages in thread
From: Roger Sayle @ 2026-08-01 20:50 UTC (permalink / raw)
To: gdb-patches; +Cc: 'Hans-Peter Nilsson'
[-- Attachment #1: Type: text/plain, Size: 435 bytes --]
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.
[-- Attachment #2: patchgd.txt --]
[-- Type: text/plain, Size: 597 bytes --]
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;
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] Avoid seg fault in sim/cris/sim-if.c
2026-08-01 20:50 [PATCH] Avoid seg fault in sim/cris/sim-if.c Roger Sayle
@ 2026-08-03 12:10 ` Andrew Burgess
[not found] ` <009501dd2343$a20cc5f0$e62651d0$@nextmovesoftware.com>
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Burgess @ 2026-08-03 12:10 UTC (permalink / raw)
To: Roger Sayle, gdb-patches; +Cc: 'Hans-Peter Nilsson'
"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;
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-10 14:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-01 20:50 [PATCH] Avoid seg fault in sim/cris/sim-if.c Roger Sayle
2026-08-03 12:10 ` Andrew Burgess
[not found] ` <009501dd2343$a20cc5f0$e62651d0$@nextmovesoftware.com>
2026-08-10 14:07 ` Hans-Peter Nilsson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox