From: Giulio Fieramosca Date: Thu, 3 Nov 2022 19:38:20 +0000 (+0100) Subject: rtos/ThreadX: added check for NULL-named tasks X-Git-Tag: v0.12.0-rc3~20 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=2e9f04c11a5aeb9c7aa9d387f9f4d0e7c65a1f5b rtos/ThreadX: added check for NULL-named tasks Thread name loading was not correctly handled if a ThreadX task has a NULL name. Signed-off-by: Giulio Fieramosca Change-Id: I03071930182bc2585b61ce5d8c67491710883dd6 Reviewed-on: https://review.openocd.org/c/openocd/+/7328 Tested-by: jenkins Reviewed-by: Tomas Vanek Reviewed-by: Antonio Borneo --- diff --git a/src/rtos/ThreadX.c b/src/rtos/ThreadX.c index 5f90eb6445..5bdd007d42 100644 --- a/src/rtos/ThreadX.c +++ b/src/rtos/ThreadX.c @@ -370,16 +370,21 @@ static int threadx_update_threads(struct rtos *rtos) } /* Read the thread name */ - retval = - target_read_buffer(rtos->target, - name_ptr, - THREADX_THREAD_NAME_STR_SIZE, - (uint8_t *)&tmp_str); - if (retval != ERROR_OK) { - LOG_ERROR("Error reading thread name from ThreadX target"); - return retval; + tmp_str[0] = '\x00'; + + /* Check if thread has a valid name */ + if (name_ptr != 0) { + retval = + target_read_buffer(rtos->target, + name_ptr, + THREADX_THREAD_NAME_STR_SIZE, + (uint8_t *)&tmp_str); + if (retval != ERROR_OK) { + LOG_ERROR("Error reading thread name from ThreadX target"); + return retval; + } + tmp_str[THREADX_THREAD_NAME_STR_SIZE - 1] = '\x00'; } - tmp_str[THREADX_THREAD_NAME_STR_SIZE-1] = '\x00'; if (tmp_str[0] == '\x00') strcpy(tmp_str, "No Name");