diff options
author | Pedro Alves <palves@redhat.com> | 2013-02-12 15:03:12 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2013-02-12 15:03:12 +0000 |
commit | 8a4ac37ef487aa7923a44e1ca4afef8fff828fb7 (patch) | |
tree | a6188bbe743f0f959eb98ddfb29a8dfcd32544d1 /gdb/gdbserver | |
parent | 57093f5e8089ca3de7cf3990454ab577a9cec06c (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/thread-db.c | 2 |
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) |