[libvirt] [PATCHv5 01/19] util: string: Add helper to free non-NULL terminated string arrays

Eric Blake eblake at redhat.com
Fri Jun 20 16:29:21 UTC 2014


On 06/20/2014 01:59 AM, Peter Krempa wrote:
> On 06/20/14 00:41, Eric Blake wrote:
>> On 06/19/2014 07:59 AM, Peter Krempa wrote:
>>> Sometimes the length of the string list is known but the array isn't
>>> NULL terminated. Add helper to free the array in such cases.
>>> ---
>>>  src/libvirt_private.syms |  1 +
>>>  src/util/virstring.c     | 20 ++++++++++++++++++++
>>>  src/util/virstring.h     |  1 +
>>>  3 files changed, 22 insertions(+)
>>
>> I'm still not fully convinced we needed this (if you ALWAYS
>> over-allocate the array large enough for a NULL terminator, including in
> 
> Well I'm using it to free a string list that had the individual string
> elements stolen from it, where the regular freeing function would finish
> possibly on the first element as it might be already NULL and stolen.

Ah, _that_ explains it.  Put this reason in your commit message, and
then I'm fine giving ACK.

> 
> Hmm testing a freeing function that frees the entire array? Not sure how
> I'd approach it. Also is it really worth?

Create an array of { "mallocd", NULL, "mallocd", NULL }, then free it.
If the test doesn't crash, and if valgrind doesn't report leaks or
double-free, then it was worth the test.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140620/6d65c9ed/attachment-0001.sig>


More information about the libvir-list mailing list