]> git.sur5r.net Git - openocd/commitdiff
ChibiOS: fix crash on auto detection
authorRichard Braun <rbraun@sceen.net>
Wed, 11 Mar 2015 13:04:15 +0000 (14:04 +0100)
committerPaul Fertser <fercerpav@gmail.com>
Tue, 14 Apr 2015 11:16:50 +0000 (12:16 +0100)
The detection framework assumes rtos->symbols is dynamically allocated,
an assumption that the ChibiOS variant breaks by providing a raw statically
allocated symbol list.

Change-Id: I379bcc2af99006912608ddd3f646ff7085606f47
Signed-off-by: Richard Braun <rbraun@sceen.net>
Reviewed-on: http://openocd.zylin.com/2597
Tested-by: jenkins
Reviewed-by: Stian Skjelstad <stian@nixia.no>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
src/rtos/ChibiOS.c

index b94e286f759c9d617cb09064a4a29acf6d3c8625..84393860c1d758ae04c61ff2b21d004dbbceeeca 100644 (file)
@@ -507,7 +507,12 @@ static int ChibiOS_get_thread_reg_list(struct rtos *rtos, int64_t thread_id, cha
 
 static int ChibiOS_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[])
 {
-       *symbol_list = ChibiOS_symbol_list;
+       *symbol_list = malloc(sizeof(ChibiOS_symbol_list));
+
+       if (*symbol_list == NULL)
+               return ERROR_FAIL;
+
+       memcpy(*symbol_list, ChibiOS_symbol_list, sizeof(ChibiOS_symbol_list));
        return 0;
 }