diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/solib-frv.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3d95b19..fc66469 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-04-27 Kevin Buettner <kevinb@redhat.com> + + * solib-frv.c (lm_base): Bail out if the main executable has + not been relocated. + 2007-04-27 Ulrich Weigand <uweigand@de.ibm.com> * alpha-linux-tdep.c (alpha_linux_supply_fpregset): Correct location diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c index 5d2c9a1..f9f966d 100644 --- a/gdb/solib-frv.c +++ b/gdb/solib-frv.c @@ -361,6 +361,14 @@ lm_base (void) CORE_ADDR addr; gdb_byte buf[FRV_PTR_SIZE]; + /* One of our assumptions is that the main executable has been relocated. + Bail out if this has not happened. (Note that post_create_inferior() + in infcmd.c will call solib_add prior to solib_create_inferior_hook(). + If we allow this to happen, lm_base_cache will be initialized with + a bogus value. */ + if (main_executable_lm_info == 0) + return 0; + /* If we already have a cached value, return it. */ if (lm_base_cache) return lm_base_cache; |