aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-02-12 15:03:12 +0000
committerPedro Alves <palves@redhat.com>2013-02-12 15:03:12 +0000
commit8a4ac37ef487aa7923a44e1ca4afef8fff828fb7 (patch)
treea6188bbe743f0f959eb98ddfb29a8dfcd32544d1 /gdb/gdbserver
parent57093f5e8089ca3de7cf3990454ab577a9cec06c (diff)
downloadgdb-8a4ac37ef487aa7923a44e1ca4afef8fff828fb7.zip
gdb-8a4ac37ef487aa7923a44e1ca4afef8fff828fb7.tar.gz
gdb-8a4ac37ef487aa7923a44e1ca4afef8fff828fb7.tar.bz2
From: Sanimir Agovic <sanimir.agovic@intel.com>
null ptr check to prevent gdbserver from crashing Evaluating a thread local storage variable in a remote scenario crashes gdbserver if libthread-db could not be loaded. 2013-02-12 Sanimir Agovic <sanimir.agovic@intel.com> gdbserver/ * thread-db.c (thread_db_get_tls_address): NULL pointer check thread_db. testsuite/ * gdb.server/no-thread-db.exp: New file. * gdb.server/no-thread-db.c: New file. * gdb.server/Makefile.in (EXECUTABLES): Add no-thread-db.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/thread-db.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index f2d41d8..371c02b 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-12 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * thread-db.c (thread_db_get_tls_address): NULL pointer check
+ thread_db.
+
2013-02-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
* linux-aarch64-low.c (aarch64_arch_setup): Clamp
diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c
index f4afde3..e8d3481 100644
--- a/gdb/gdbserver/thread-db.c
+++ b/gdb/gdbserver/thread-db.c
@@ -494,7 +494,7 @@ thread_db_get_tls_address (struct thread_info *thread, CORE_ADDR offset,
thread_db = proc->private->thread_db;
/* If the thread layer is not (yet) initialized, fail. */
- if (!thread_db->all_symbols_looked_up)
+ if (thread_db == NULL || !thread_db->all_symbols_looked_up)
return TD_ERR;
if (thread_db->td_thr_tls_get_addr_p == NULL)