This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] varobj.c: check wrapper return value
- To: Keith Seitz <keiths at cygnus dot com>
- Subject: Re: [RFA] varobj.c: check wrapper return value
- From: Fernando Nasser <fnasser at redhat dot com>
- Date: Wed, 10 Oct 2001 12:48:07 -0400
- CC: gdb-patches at sources dot redhat dot com, Andrew Cagney <cagney at cygnus dot com>
- Organization: Red Hat Canada
- References: <Pine.GSO.4.33.0110100856310.2918-100000@makita.cygnus.com>
Keith Seitz wrote:
>
> Hi,
>
> Varobj has an unchecked return value from "gdb_value_ind" which can cause
> a segv from an invalid struct value.
>
> I presume that this should also go into 5.1 if it is not too late. (For
> that matter, so should the other changes to varobj.c -- all of which
> prevent segvs from happening. My bad.)
>
> Keith
>
Thanks. Please check it in the trunk.
I can't tell about 5.1. Andrew?
Fernando
> ChangeLog
> 2001-10-10 Keith Seitz <keiths@redhat.com>
>
> * varobj.c (cplus_value_of_child): Deal with a failure
> to dereference a pointer object.
>
> Patch
> Index: varobj.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/varobj.c,v
> retrieving revision 1.20
> diff -u -p -r1.20 varobj.c
> --- varobj.c 2001/08/17 18:56:49 1.20
> +++ varobj.c 2001/10/10 15:59:38
> @@ -2313,7 +2313,10 @@ cplus_value_of_child (struct varobj *par
>
> if (TYPE_CODE (VALUE_TYPE (parent->value)) == TYPE_CODE_PTR
> || TYPE_CODE (VALUE_TYPE (parent->value)) == TYPE_CODE_REF)
> - gdb_value_ind (parent->value, &temp);
> + {
> + if (!gdb_value_ind (parent->value, &temp))
> + return NULL;
> + }
> else
> temp = parent->value;
--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9