This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [PATCH, RFA] Fix basename bug in symtab.c


Mark Kettenis writes:
 > [Jim, Elena, sorry I keep saying cygnus instead of redhat :-(]
 > 
 > Here is a patch that fixes the problems discussed on the discussion
 > list.  Eli pretty much convinced me that this is the right approach.
 > We can still discuss the other uses of basename() in GDB, but since
 > this fixes a rather serious bug on FreeBSD (and I suppose other
 > systems as well), I'd like to get this in ASAP.
 > 
 > Mark
 > 

Yes, go ahead. I think this qualifies pretty much as an obvious fix.

Should you include libiberty.h ?

Thanks
Elena


 > 
 > Index: ChangeLog
 > from  Mark Kettenis  <kettenis@gnu.org>
 > 
 > 	* symtab.c (lookup_symtab_1): Use lbasename (NAME) instead of
 > 	basename (NAME).  The FreeBSD basename returns a pointer to a
 > 	static buffer, even if it's simply returning a string identical to
 > 	its argument.
 > 	(lookup_partial_symtab): Likewise.
 > 
 > Index: symtab.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symtab.c,v
 > retrieving revision 1.37
 > diff -u -p -r1.37 symtab.c
 > --- symtab.c 2001/05/11 17:48:31 1.37
 > +++ symtab.c 2001/05/13 19:37:21
 > @@ -154,7 +154,7 @@ got_symtab:
 >  
 >    /* Now, search for a matching tail (only if name doesn't have any dirs) */
 >  
 > -  if (basename (name) == name)
 > +  if (lbasename (name) == name)
 >      ALL_SYMTABS (objfile, s)
 >      {
 >        if (FILENAME_CMP (basename (s->filename), name) == 0)
 > @@ -244,7 +244,7 @@ lookup_partial_symtab (char *name)
 >  
 >    /* Now, search for a matching tail (only if name doesn't have any dirs) */
 >  
 > -  if (basename (name) == name)
 > +  if (lbasename (name) == name)
 >      ALL_PSYMTABS (objfile, pst)
 >      {
 >        if (FILENAME_CMP (basename (pst->filename), name) == 0)
 > 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]