diff options
author | Matthias Blaicher <matthias@blaicher.com> | 2012-10-27 16:00:12 +0200 |
---|---|---|
committer | Peter Stuge <peter@stuge.se> | 2012-10-27 17:25:04 +0000 |
commit | a4dc39beb4c5678476d40e4e13f0a79d45145460 (patch) | |
tree | 7608314dc940da03e6696eb4bd35aaf569d9eaf2 /src | |
parent | 4a5dc0988ac91d1b5e63a28688edc2c6e890c179 (diff) |
rtos: Fix wrong allocation in linux_get_symbol_list_to_lookup
linux_get_symbol_list_to_lookup allocates to few memory. On 64 bit
systems the error did not show due to char* being twice its size,
leaving accidentally enough space.
This patch makes linux_get_symbol_list_to_lookup behave identical
to all other RTOS.
Change-Id: I290ea241fb20b65585c8be14609a92fdbd2a307d
Signed-off-by: Matthias Blaicher <matthias@blaicher.com>
Reviewed-on: http://openocd.zylin.com/934
Tested-by: jenkins
Reviewed-by: Peter Stuge <peter@stuge.se>
Diffstat (limited to 'src')
-rw-r--r-- | src/rtos/linux.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rtos/linux.c b/src/rtos/linux.c index ba65558e..3f1b214b 100644 --- a/src/rtos/linux.c +++ b/src/rtos/linux.c @@ -28,8 +28,8 @@ #include "target/target.h" #include "target/target_type.h" #include "helper/log.h" +#include "helper/types.h" #include "rtos.h" -#include "helper/log.h" #include "rtos_standard_stackings.h" #include <target/register.h> #include "server/gdb_server.h" @@ -326,9 +326,9 @@ static int linux_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[]) { unsigned int i; *symbol_list = (symbol_table_elem_t *) - malloc(sizeof(symbol_table_elem_t) / sizeof(char *)); + malloc(sizeof(symbol_table_elem_t) * ARRAY_SIZE(linux_symbol_list)); - for (i = 0; i < sizeof(linux_symbol_list) / sizeof(char *); i++) + for (i = 0; i < ARRAY_SIZE(linux_symbol_list); i++) (*symbol_list)[i].symbol_name = linux_symbol_list[i]; return 0; |