Re: [patch] target_read_string, potential memory leak.

msnyder
2007-08-08T18:32:42Z

[-- Attachment #1: Type: text/plain, Size: 345 bytes --]

>
> 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?

[-- Attachment #2: target_string.txt --]
[-- Type: text/plain, Size: 939 bytes --]

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;
}