diff options
author | Pedro Alves <palves@redhat.com> | 2008-09-08 21:16:18 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2008-09-08 21:16:18 +0000 |
commit | 5822d809e73ed680e384213620a148b2e86c3b13 (patch) | |
tree | 779cf95fe8f27667b9f74c8b15cc3db6b7490c44 /gdb | |
parent | de9f48f0c431c9dcbee390a7ba8aad1a4f45128c (diff) | |
download | gdb-5822d809e73ed680e384213620a148b2e86c3b13.zip gdb-5822d809e73ed680e384213620a148b2e86c3b13.tar.gz gdb-5822d809e73ed680e384213620a148b2e86c3b13.tar.bz2 |
* regcache.c (new_register_cache): Return NULL if the register
cache size isn't known yet.
(free_register_cache): Avoid dereferencing a NULL regcache.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/gdbserver/regcache.c | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index b84dc01..0b5d10b 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2008-09-08 Pedro Alves <pedro@codesourcery.com> + + * regcache.c (new_register_cache): Return NULL if the register + cache size isn't known yet. + (free_register_cache): Avoid dereferencing a NULL regcache. + 2008-09-04 Daniel Jacobowitz <dan@codesourcery.com> * configure.srv: Merge MIPS and MIPS64. diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c index a324d43..b5ec215 100644 --- a/gdb/gdbserver/regcache.c +++ b/gdb/gdbserver/regcache.c @@ -91,6 +91,9 @@ new_register_cache (void) { struct inferior_regcache_data *regcache; + if (register_bytes == 0) + return NULL; /* The architecture hasn't been initialized yet. */ + regcache = malloc (sizeof (*regcache)); /* Make sure to zero-initialize the register cache when it is created, @@ -111,8 +114,11 @@ free_register_cache (void *regcache_p) struct inferior_regcache_data *regcache = (struct inferior_regcache_data *) regcache_p; - free (regcache->registers); - free (regcache); + if (regcache) + { + free (regcache->registers); + free (regcache); + } } static void |