[libvirt] [PATCH] Ensure nodeinfo struct is initialized to zero

Eric Blake eblake at redhat.com
Wed Jan 23 18:18:04 UTC 2013


On 01/23/2013 11:13 AM, Daniel P. Berrange wrote:
> On Wed, Jan 23, 2013 at 11:12:03AM -0700, Eric Blake wrote:
>> On 01/23/2013 11:02 AM, Richard W.M. Jones wrote:
>>> On Wed, Jan 23, 2013 at 05:06:35PM +0000, Daniel P. Berrange wrote:
>>>>> +    memset(nodeinfo, 0, sizeof(nodeinfo));
>>>>> +
>>>>
>>>> Of course i meant   sizeof(*nodeinfo)
>>>
>>> Yikes.  Doesn't libvirt have some type of VIR_* macro to either catch
>>> that error systematically or to allocate pre-cleared memory?
>>
>> VIR_MALLOC guarantees pre-cleared memory, but in this case, nodeinfo was
>> passed in by the caller rather than something that we control directly.
> 
> Of course there are plenty of places where we stack allocate
> stuff which we then memset(), so I believe a VIR_ZERO is worth
> while

Agreed.  Also, in the case of virNodeGetInfo(), I wonder if we should
just hoist the VIR_ZERO into the libvirt.c entry point, rather than
making every driver have to worry about clearing out potentially
uninitialized incoming data on all error paths.

-- 
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: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130123/79d72b6a/attachment-0001.sig>


More information about the libvir-list mailing list