This is the mail archive of the gdb-patches@sourceware.org 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]
Other format: [Raw text]

Re: [patch] target_read_string, potential memory leak.


msnyder@sonic.net writes:
>> msnyder@sonic.net writes:
>>> OK -- it would be pretty stupid to call target_read_string without
>>> passing it a buffer, but if we're going to check it for null...
>>
>> I don't think the contract for target_read_string permits STRING to be
>> null.  I think either the test should go, or we should add a
>> gdb_assert (string).
>
> Agreed.  Thus?

Agreed, thus.  :)

> Index: target.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/target.c,v
> retrieving revision 1.145
> diff -p -r1.145 target.c
> *** target.c	24 Jul 2007 12:49:24 -0000	1.145
> --- target.c	8 Aug 2007 18:31:57 -0000
> *************** target_read_string (CORE_ADDR memaddr, c
> *** 919,924 ****
> --- 919,926 ----
>     char *bufptr;
>     unsigned int nbytes_read = 0;
>   
> +   gdb_assert (string);
> + 
>     /* Small for testing.  */
>     buffer_allocated = 4;
>     buffer = xmalloc (buffer_allocated);
> *************** target_read_string (CORE_ADDR memaddr, c
> *** 968,977 ****
>         nbytes_read += tlen;
>       }
>   done:
>     if (errnop != NULL)
>       *errnop = errcode;
> -   if (string != NULL)
> -     *string = buffer;
>     return nbytes_read;
>   }
>   
> --- 970,978 ----
>         nbytes_read += tlen;
>       }
>   done:
> +   *string = buffer;
>     if (errnop != NULL)
>       *errnop = errcode;
>     return nbytes_read;
>   }
>   


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