gdbserver crash if the_target->supports_z_point_type is NULL

When debugging on LynxOS targets (and probably on SPU targets as well),
inserting a breakpoint and resuming the program's execution causes
GDBserver to crash.

The crash occurs while handling the Z0 packet sent by GDB to insert
our breakpoint, because z_type_supported calls
the_target->supports_z_point_type without checking that it is not NULL
This patch fixes the issue by making z_type_supported return false if
the_target->supports_z_point_type is NULL.

gdb/gdbserver/ChangeLog:

        PR server/17023
        * mem-break.c (z_type_supported): Return zero if
        THE_TARGET->SUPPORTS_Z_POINT_TYPE is NULL.

Tested on ppx-lynx5.
This commit is contained in:
Joel Brobecker 2014-06-04 14:03:22 -04:00
parent 012370f681
commit ef7cab6ba1
2 changed files with 7 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2014-06-04 Joel Brobecker <brobecker@adacorer.com>
PR server/17023
* mem-break.c (z_type_supported): Return zero if
THE_TARGET->SUPPORTS_Z_POINT_TYPE is NULL.
2014-06-04 Tom Tromey <tromey@redhat.com>
* ada-lang.c (ada_template_to_fixed_record_type_1): Use

View File

@ -897,6 +897,7 @@ static int
z_type_supported (char z_type)
{
return (z_type >= '0' && z_type <= '4'
&& the_target->supports_z_point_type != NULL
&& the_target->supports_z_point_type (z_type));
}