diff options
author | Spencer Oliver <spen@spen-soft.co.uk> | 2012-08-13 11:22:35 +0100 |
---|---|---|
committer | Freddie Chopin <freddie.chopin@gmail.com> | 2012-08-24 16:49:56 +0000 |
commit | 60a932b36804bff8b6ca40adc665a33a59475db1 (patch) | |
tree | e3a087a3aa6fe883aea25d7f95d5bb05cce68fcd /src/rtos/FreeRTOS.c | |
parent | fb525cdd76982b1abf69974f3ed9327876df0036 (diff) |
build: fix memory leaks
Fix the memory leaks found by clang-3.1
Change-Id: Iaae68627ef599c324c9c9ee5737c22e92512862d
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/775
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Diffstat (limited to 'src/rtos/FreeRTOS.c')
-rw-r--r-- | src/rtos/FreeRTOS.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/rtos/FreeRTOS.c b/src/rtos/FreeRTOS.c index a6462698..1e4ddc53 100644 --- a/src/rtos/FreeRTOS.c +++ b/src/rtos/FreeRTOS.c @@ -259,6 +259,7 @@ static int FreeRTOS_update_threads(struct rtos *rtos) (uint8_t *)&list_thread_count); if (retval != ERROR_OK) { LOG_OUTPUT("Error reading number of threads in FreeRTOS thread list\r\n"); + free(list_of_lists); return retval; } @@ -273,8 +274,8 @@ static int FreeRTOS_update_threads(struct rtos *rtos) param->pointer_width, (uint8_t *)&list_elem_ptr); if (retval != ERROR_OK) { - LOG_OUTPUT( - "Error reading first thread item location in FreeRTOS thread list\r\n"); + LOG_OUTPUT("Error reading first thread item location in FreeRTOS thread list\r\n"); + free(list_of_lists); return retval; } @@ -288,8 +289,8 @@ static int FreeRTOS_update_threads(struct rtos *rtos) param->pointer_width, (uint8_t *)&(rtos->thread_details[tasks_found].threadid)); if (retval != ERROR_OK) { - LOG_OUTPUT( - "Error reading thread list item object in FreeRTOS thread list\r\n"); + LOG_OUTPUT("Error reading thread list item object in FreeRTOS thread list\r\n"); + free(list_of_lists); return retval; } @@ -304,8 +305,8 @@ static int FreeRTOS_update_threads(struct rtos *rtos) FREERTOS_THREAD_NAME_STR_SIZE, (uint8_t *)&tmp_str); if (retval != ERROR_OK) { - LOG_OUTPUT( - "Error reading first thread item location in FreeRTOS thread list\r\n"); + LOG_OUTPUT("Error reading first thread item location in FreeRTOS thread list\r\n"); + free(list_of_lists); return retval; } tmp_str[FREERTOS_THREAD_NAME_STR_SIZE-1] = '\x00'; @@ -338,12 +339,13 @@ static int FreeRTOS_update_threads(struct rtos *rtos) param->pointer_width, (uint8_t *)&list_elem_ptr); if (retval != ERROR_OK) { - LOG_OUTPUT( - "Error reading next thread item location in FreeRTOS thread list\r\n"); + LOG_OUTPUT("Error reading next thread item location in FreeRTOS thread list\r\n"); + free(list_of_lists); return retval; } } } + free(list_of_lists); rtos->thread_count = tasks_found; return 0; |