diff options
author | Peter Bergner <bergner@vnet.ibm.com> | 2017-03-07 09:49:10 -0600 |
---|---|---|
committer | Peter Bergner <bergner@vnet.ibm.com> | 2017-03-07 09:49:10 -0600 |
commit | f7bb4e3a0d3738e8cce3dcded6ef12c9949cb85f (patch) | |
tree | 064700505f6c3b6b01246aa0334996b826863bb4 /gdb/gdbarch.sh | |
parent | e45ced6c5e06b0092ac9f5497aa580cfad0c953c (diff) |
GDB: Fix some null pointer dereferences due to disassembler-options patch.
gdb/
* gdbarch.sh (pstring_ptr): New static function.
(gdbarch_disassembler_options): Use it.
(gdbarch_verify_disassembler_options): Print valid_disassembler_options,
not valid_disassembler_option->name.
* gdbarch.c: Regenerate.
Diffstat (limited to 'gdb/gdbarch.sh')
-rwxr-xr-x | gdb/gdbarch.sh | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 6902e0e34d..39b1f9477c 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -1164,8 +1164,8 @@ m:const char *:gnu_triplet_regexp:void:::default_gnu_triplet_regexp::0 m:int:addressable_memory_unit_size:void:::default_addressable_memory_unit_size::0 # Functions for allowing a target to modify its disassembler options. -v:char **:disassembler_options:::0:0::0:pstring (*gdbarch->disassembler_options) -v:const disasm_options_t *:valid_disassembler_options:::0:0::0:host_address_to_string (gdbarch->valid_disassembler_options->name) +v:char **:disassembler_options:::0:0::0:pstring_ptr (gdbarch->disassembler_options) +v:const disasm_options_t *:valid_disassembler_options:::0:0::0:host_address_to_string (gdbarch->valid_disassembler_options) EOF } @@ -1678,6 +1678,14 @@ pstring (const char *string) return string; } +static char * +pstring_ptr (char **string) +{ + if (string == NULL || *string == NULL) + return "(null)"; + return *string; +} + /* Helper function to print a list of strings, represented as "const char *const *". The list is printed comma-separated. */ |