summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-02-27 01:24:37 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2010-02-27 01:24:37 +0000
commitbc56c8fa67fd067d8082ec0813f18269bca434f1 (patch)
tree1780b76aa606ea7ce6d5dd5e9af4ea7e246cf0fb /sim
parentc3e4ae2903ff58e2a9f4efc9d0d5159839c1c1ed (diff)
sim/moxie/
* interp.c (sim_create_inferior): Fix crashes on zero PROG_BFD or ARGV.
Diffstat (limited to 'sim')
-rw-r--r--sim/moxie/ChangeLog4
-rw-r--r--sim/moxie/interp.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/sim/moxie/ChangeLog b/sim/moxie/ChangeLog
index c2c1c659fd..043927d2b9 100644
--- a/sim/moxie/ChangeLog
+++ b/sim/moxie/ChangeLog
@@ -1,3 +1,7 @@
+2010-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * interp.c (sim_create_inferior): Fix crashes on zero PROG_BFD or ARGV.
+
2010-02-03 Anthony Green <green@moxielogic.com>
* interp.c (sim_resume): nop is 0x0f, and 0x00 is an illegal
diff --git a/sim/moxie/interp.c b/sim/moxie/interp.c
index a608416eb4..079ef9b1ff 100644
--- a/sim/moxie/interp.c
+++ b/sim/moxie/interp.c
@@ -1307,11 +1307,12 @@ sim_create_inferior (sd, prog_bfd, argv, env)
set_initial_gprs ();
issue_messages = l;
- cpu.asregs.regs[PC_REGNO] = bfd_get_start_address (prog_bfd);
+ if (prog_bfd != NULL)
+ cpu.asregs.regs[PC_REGNO] = bfd_get_start_address (prog_bfd);
/* Copy args into target memory. */
avp = argv;
- for (argc = 0; *avp; avp++)
+ for (argc = 0; avp && *avp; avp++)
argc++;
/* Target memory looks like this: