aboutsummaryrefslogtreecommitdiff
path: root/src/rtos/FreeRTOS.c
diff options
context:
space:
mode:
authorSpencer Oliver <spen@spen-soft.co.uk>2012-08-13 11:22:35 +0100
committerFreddie Chopin <freddie.chopin@gmail.com>2012-08-24 16:49:56 +0000
commit60a932b36804bff8b6ca40adc665a33a59475db1 (patch)
treee3a087a3aa6fe883aea25d7f95d5bb05cce68fcd /src/rtos/FreeRTOS.c
parentfb525cdd76982b1abf69974f3ed9327876df0036 (diff)
downloadriscv-openocd-60a932b36804bff8b6ca40adc665a33a59475db1.zip
riscv-openocd-60a932b36804bff8b6ca40adc665a33a59475db1.tar.gz
riscv-openocd-60a932b36804bff8b6ca40adc665a33a59475db1.tar.bz2
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.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/rtos/FreeRTOS.c b/src/rtos/FreeRTOS.c
index a646269..1e4ddc5 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;