[PATCH] symtab.c: make sure alloca is big enough

Michael Snyder msnyder@cygnus.com
Wed Dec 5 12:05:00 GMT 2001


Elena Zannoni wrote:
> 
> Michael Snyder writes:
>  > 2001-12-03  Michael Snyder  <msnyder@redhat.com>
>  >
>  >      * symtab.c (search_symbols): Make sure alloca size is big enough.
> 
> Michael,
> have you checked this in? If not please do.
> 
> Where would this problem manifest itself?
> Some testsuite cases?

It probably would not manifest itself at all.  This is a 
paranoia fix, based on feedback from Michael Chastain.
He pointed out that, although the previous allocation size
was probably big enough, it was not provably big enough.
The new size can be easily demonstrated to be big enough
(by inspection, as it were).

 
> Thanks
> Elena
> 
>  >
>  > Index: symtab.c
>  > ===================================================================
>  > RCS file: /cvs/src/src/gdb/symtab.c,v
>  > retrieving revision 1.48
>  > diff -c -3 -p -r1.48 symtab.c
>  > *** symtab.c 2001/11/13 16:42:50     1.48
>  > --- symtab.c 2001/12/03 19:28:26
>  > *************** search_symbols (char *regexp, namespace_
>  > *** 2422,2428 ****
>  >        /* If wrong number of spaces, fix it. */
>  >        if (fix >= 0)
>  >          {
>  > !          char *tmp = (char *) alloca (strlen (regexp) + fix);
>  >            sprintf (tmp, "operator%.*s%s", fix, " ", opname);
>  >            regexp = tmp;
>  >          }
>  > --- 2422,2428 ----
>  >        /* If wrong number of spaces, fix it. */
>  >        if (fix >= 0)
>  >          {
>  > !          char *tmp = (char *) alloca (8 + fix + strlen (opname) + 1);
>  >            sprintf (tmp, "operator%.*s%s", fix, " ", opname);
>  >            regexp = tmp;
>  >          }



More information about the Gdb-patches mailing list