rtos: Do not dereference null pointers
[fw/openocd] / src / rtos / linux.c
index 80d84d73e7779b919d70fdcbda78a04e1fa2704a..e692ada8274edd417b303fd41751869cd920fafd 100644 (file)
@@ -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));