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