mirror of
https://git.code.sf.net/p/openocd/code
synced 2025-04-22 10:35:49 +00:00
rtos/linux: fix name overwrite in linux_thread_extra_info()
commit 908ee4dc9641bd3df2eb00264575501867da539d ("build: remove clang unused variable assignment warnings") introduced an error: ``` - tmp_str_ptr += sprintf(tmp_str_ptr, "%s", name); + sprintf(tmp_str_ptr, "%s", name); sprintf(tmp_str_ptr, "%s", temp->name); ``` This results in `name` being overwritten by `temp->name`. Fix this, adding OOM handling along the way. Change-Id: Id41f73247c3f7e6194d7c92187ad3163a9ea6c89 Signed-off-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8761 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
committed by
Antonio Borneo
parent
d892a4d763
commit
16c6497a89
@ -1120,23 +1120,13 @@ static int linux_thread_extra_info(struct target *target,
|
||||
|
||||
while (temp) {
|
||||
if (temp->threadid == threadid) {
|
||||
char *pid = " PID: ";
|
||||
char *pid_current = "*PID: ";
|
||||
char *name = "Name: ";
|
||||
int str_size = strlen(pid) + strlen(name);
|
||||
char *tmp_str = calloc(1, str_size + 50);
|
||||
char *tmp_str_ptr = tmp_str;
|
||||
|
||||
/* discriminate current task */
|
||||
if (temp->status == 3)
|
||||
tmp_str_ptr += sprintf(tmp_str_ptr, "%s",
|
||||
pid_current);
|
||||
else
|
||||
tmp_str_ptr += sprintf(tmp_str_ptr, "%s", pid);
|
||||
|
||||
tmp_str_ptr += sprintf(tmp_str_ptr, "%d, ", (int)temp->pid);
|
||||
sprintf(tmp_str_ptr, "%s", name);
|
||||
sprintf(tmp_str_ptr, "%s", temp->name);
|
||||
char *tmp_str = alloc_printf("%cPID: %" PRIu32 ", Name: %s",
|
||||
temp->status == 3 ? '*' : ' ',
|
||||
temp->pid, temp->name);
|
||||
if (!tmp_str) {
|
||||
LOG_ERROR("Out of memory");
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
char *hex_str = calloc(1, strlen(tmp_str) * 2 + 1);
|
||||
size_t pkt_len = hexify(hex_str, (const uint8_t *)tmp_str,
|
||||
strlen(tmp_str), strlen(tmp_str) * 2 + 1);
|
||||
|
Reference in New Issue
Block a user