From e1d2abc9ca53d983716ac9dcc481b8130d8e5ca2 Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Mon, 19 Aug 2013 14:42:53 +0100 Subject: [PATCH] rtos: Do not dereference null pointers detected by clang. Change-Id: Id395f9d33bc2903b29a158fc3540ae51857e6aa0 Signed-off-by: Spencer Oliver Reviewed-on: http://openocd.zylin.com/1555 Tested-by: jenkins --- src/rtos/linux.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/rtos/linux.c b/src/rtos/linux.c index 80d84d73..e692ada8 100644 --- a/src/rtos/linux.c +++ b/src/rtos/linux.c @@ -533,7 +533,7 @@ int get_current(struct target *target, int create) LOG_ERROR ("error in linux current thread update"); - if (create) { + if (create && ct) { struct threads *t; t = calloc(1, sizeof(struct threads)); t->base_addr = ct->TS; @@ -1140,13 +1140,12 @@ int linux_gdb_thread_packet(struct target *target, char *tmp_str = out_str; tmp_str += sprintf(tmp_str, "m"); struct threads *temp = linux_os->thread_list; - tmp_str += sprintf(tmp_str, "%016" PRIx64, temp->threadid); - temp = temp->next; while (temp != NULL) { - tmp_str += sprintf(tmp_str, ","); tmp_str += sprintf(tmp_str, "%016" PRIx64, temp->threadid); temp = temp->next; + if (temp) + tmp_str += sprintf(tmp_str, ","); } gdb_put_packet(connection, out_str, strlen(out_str)); -- 2.39.5