diff options
author | Tom Tromey <tom@tromey.com> | 2018-12-19 11:44:28 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-12-28 14:08:03 -0700 |
commit | 2cd8cc0b66ca297bce4d08e4f712f86d9f1a2fb6 (patch) | |
tree | 63ba4a2b4470df028bb65a11849ed5ba0259efd2 /gdb/jit.c | |
parent | 140a4bc099820c909da0eac1df0f56ec468ad3dd (diff) | |
download | binutils-gdb-2cd8cc0b66ca297bce4d08e4f712f86d9f1a2fb6.tar.gz |
Fix a crash in jit.c
A user at Mozilla pointed out a crash in jit.c. In his situation, an
inferior using the JIT API exec'd an executable that did not use it.
This caused an assertion failure when jit.c:free_objfile_data called
delete_breakpoint with NULL.
This patch fixes the problem in the obvious way. New test case
included.
gdb/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
* jit.c (free_objfile_data): Only delete breakpoint if non-null.
gdb/testsuite/ChangeLog
2018-12-28 Tom Tromey <tom@tromey.com>
Simon Marchi <simark@simark.ca>
* gdb.base/jit-exec.exp: New file.
* gdb.base/jit-exec.c: New file.
* gdb.base/jit-execd.c: New file.
Diffstat (limited to 'gdb/jit.c')
-rw-r--r-- | gdb/jit.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gdb/jit.c b/gdb/jit.c index e6b3cc25ca4..9ae5d4a908c 100644 --- a/gdb/jit.c +++ b/gdb/jit.c @@ -1464,7 +1464,8 @@ free_objfile_data (struct objfile *objfile, void *data) if (ps_data != NULL && ps_data->objfile == objfile) { ps_data->objfile = NULL; - delete_breakpoint (ps_data->jit_breakpoint); + if (ps_data->jit_breakpoint != NULL) + delete_breakpoint (ps_data->jit_breakpoint); ps_data->cached_code_address = 0; } } |