Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "taylor, david" <david.taylor@emc.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: RE: [PATCH] symtab.c -- Fix off by one allocation bug
Date: Thu, 16 Jun 2016 16:26:00 -0000	[thread overview]
Message-ID: <63F1AEE13FAE864586D589C671A6E18B062D30@MX203CL03.corp.emc.com> (raw)
In-Reply-To: <20160613182324.GB3910@adacore.com>


> From: Joel Brobecker [mailto:brobecker@adacore.com]
> Sent: Monday, June 13, 2016 2:23 PM
> To: taylor, david
> Cc: gdb-patches@sourceware.org
> Subject: Re: [PATCH] symtab.c -- Fix off by one allocation bug
> 
> > This fixes a problem found by valgrind.  Applying this patch caused no
> > regressions on GNU/Linux x86-64 and satisfied valgrind.
> >
> > 	* gdb/symtab.c (symbol_set_names): Fix off by one error in
> > 	allocation.
> 
> Thanks for the patch.
> 
> Can you give a little more detail as to why we need that extra byte, and
> provide that information in the revision log. This kind of information is always
> very precious when doing archelogy.
> 
> Thanks!

Sadly, probably not.

This bug was found awhile ago and at the time we were using STAB
debugging format.  We have since switched to DWARF.  I was having
problems finding the source of a problem we were having and threw
valgrind at it.  I ultimately found the other problem via other methods,
but valgrind found this problem.  I remember staring at the code long
enough to convince myself that valgrind was correct.  And after increasing
it, valgrind was happy.

> > ---
> >  gdb/ChangeLog | 4 ++++
> >  gdb/symtab.c  | 2 +-
> >  2 files changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9c09269..aaeeb6e
> > 100644
> > --- a/gdb/ChangeLog
> > +++ b/gdb/ChangeLog
> > @@ -1,3 +1,7 @@
> > +2016-06-09  David Taylor  <dtaylor@emc.com>
> > +
> > +	* symtab.c (symbol_set_names): Fix off by one error in allocation.
> > +
> >  2016-06-07  Simon Marchi  <simon.marchi@ericsson.com>
> >
> >  	* mi/mi-interp.c (mi_record_changed): Add missing braces.
> > diff --git a/gdb/symtab.c b/gdb/symtab.c index f7a207a..12e1cf5 100644
> > --- a/gdb/symtab.c
> > +++ b/gdb/symtab.c
> > @@ -1010,7 +1010,7 @@ symbol_set_names (struct general_symbol_info
> *gsymbol,
> >  	    = ((struct demangled_name_entry *)
> >  	       obstack_alloc (&per_bfd->storage_obstack,
> >  			      offsetof (struct demangled_name_entry,
> demangled)
> > -			      + lookup_len + demangled_len + 2));
> > +			      + lookup_len + demangled_len + 3));
> >  	  mangled_ptr = &((*slot)->demangled[demangled_len + 1]);
> >  	  strcpy (mangled_ptr, lookup_name);
> >  	  (*slot)->mangled = mangled_ptr;
> > --
> > 1.9.1
> 
> --
> Joel


      reply	other threads:[~2016-06-16 16:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-13 17:58 David Taylor
2016-06-13 18:23 ` Joel Brobecker
2016-06-16 16:26   ` taylor, david [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=63F1AEE13FAE864586D589C671A6E18B062D30@MX203CL03.corp.emc.com \
    --to=david.taylor@emc.com \
    --cc=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox