From: Spencer Oliver Date: Mon, 19 Aug 2013 13:42:53 +0000 (+0100) Subject: rtos: Do not dereference null pointers X-Git-Tag: v0.8.0-rc1~301 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e1d2abc9ca53d983716ac9dcc481b8130d8e5ca2;p=openocd 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 --- 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));