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>
This commit is contained in:
Matthias Blaicher 2012-10-27 16:00:12 +02:00 committed by Peter Stuge
parent 4a5dc0988a
commit a4dc39beb4
1 changed files with 3 additions and 3 deletions

View File

@ -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;