Browse Source

Avoid NULL dereference.

* stack.c (return_command): Guard use of SYMBOL_TYPE (thisfun).
	New variable func_type.
cgen-1_1-branch
Jan Kratochvil 18 years ago
parent
commit
42e2132c64
  1. 7
      gdb/ChangeLog
  2. 11
      gdb/stack.c

7
gdb/ChangeLog

@ -1,3 +1,10 @@
2009-02-11 Jim Meyering <meyering@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
Avoid NULL dereference.
* stack.c (return_command): Guard use of SYMBOL_TYPE (thisfun).
New variable func_type.
2009-02-11 Pedro Alves <pedro@codesourcery.com>
* gdbarch.c: Regenerate.

11
gdb/stack.c

@ -1823,7 +1823,8 @@ return_command (char *retval_exp, int from_tty)
is discarded, side effects such as "return i++" still
occur. */
return_value = NULL;
else if (using_struct_return (SYMBOL_TYPE (thisfun), return_type))
else if (thisfun != NULL
&& using_struct_return (SYMBOL_TYPE (thisfun), return_type))
{
query_prefix = "\
The location at which to store the function's return value is unknown.\n\
@ -1856,10 +1857,12 @@ If you continue, the return value that you specified will be ignored.\n";
{
struct type *return_type = value_type (return_value);
struct gdbarch *gdbarch = get_regcache_arch (get_current_regcache ());
gdb_assert (gdbarch_return_value (gdbarch, SYMBOL_TYPE (thisfun),
return_type, NULL, NULL, NULL)
struct type *func_type = thisfun == NULL ? NULL : SYMBOL_TYPE (thisfun);
gdb_assert (gdbarch_return_value (gdbarch, func_type, return_type, NULL,
NULL, NULL)
== RETURN_VALUE_REGISTER_CONVENTION);
gdbarch_return_value (gdbarch, SYMBOL_TYPE (thisfun), return_type,
gdbarch_return_value (gdbarch, func_type, return_type,
get_current_regcache (), NULL /*read*/,
value_contents (return_value) /*write*/);
}

Loading…
Cancel
Save