aboutsummaryrefslogtreecommitdiff
path: root/src/rtos/linux.c
diff options
context:
space:
mode:
authorSpencer Oliver <spen@spen-soft.co.uk>2013-08-19 14:42:53 +0100
committerSpencer Oliver <spen@spen-soft.co.uk>2013-09-08 16:11:29 +0000
commite1d2abc9ca53d983716ac9dcc481b8130d8e5ca2 (patch)
treeb52943b67ed98d6a38c7b4ae7a1dadcef70e76fd /src/rtos/linux.c
parente475896eb18185ac6089cfeec45c8bd4dcb73330 (diff)
downloadriscv-openocd-e1d2abc9ca53d983716ac9dcc481b8130d8e5ca2.zip
riscv-openocd-e1d2abc9ca53d983716ac9dcc481b8130d8e5ca2.tar.gz
riscv-openocd-e1d2abc9ca53d983716ac9dcc481b8130d8e5ca2.tar.bz2
rtos: Do not dereference null pointers
detected by clang. Change-Id: Id395f9d33bc2903b29a158fc3540ae51857e6aa0 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1555 Tested-by: jenkins
Diffstat (limited to 'src/rtos/linux.c')
-rw-r--r--src/rtos/linux.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/rtos/linux.c b/src/rtos/linux.c
index 80d84d7..e692ada 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));