Re: [PATCH] Avoid seg fault in sim/cris/sim-if.c
Andrew Burgess <[email protected]> Mon, 03 Aug 2026 13:10:11 +0100
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
"Roger Sayle" <[email protected]> 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 <[email protected]> > > 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; >