[libvirt] [PATCH] lxcFreezeContainer: avoid test-after-deref of never-NULL pointer

Eric Blake eblake at redhat.com
Mon May 17 17:49:52 UTC 2010


On 05/17/2010 11:40 AM, Jim Meyering wrote:
> Eric Blake wrote:
>> On 05/17/2010 11:22 AM, Jim Meyering wrote:
>>> This addresses another coverity-spotted "flaw".
>>> However, since "cgroup" is never NULL after that initial "if" stmt,
>>> the only penalty is that the useless cleanup test would make a reviewer
>>> try to figure out how cgroup could be NULL there.
>>
>> ACK.
> 
> Thanks.
> 
>>>  cleanup:
>>> -    if (cgroup)
>>> -        virCgroupFree(&cgroup);
>>> +    virCgroupFree(&cgroup);

Hmm, on re-reading this, why is virCgroupFree taking a pointer to a
virCgroupPtr, then blindly dereferencing it throughout the cleanup?  It
almost seems like we have the wrong signature, and should be using:

virCgroupFree(virCgroupPtr group)

instead of

virCgroupFree(virCgroupPtr *group)

and adjust all callers.  But that's a separate cleanup.

> This makes the useless-if-before-free test in maint.mk spot
> uses of virCgroupFree just like it does for free and the other
> listed functions.
> * cfg.mk (useless_free_options): Add virCgroupFree.
> Prompted by suggestion from Eric Blake.

ACK, given the current semantics of virCgroupFree.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

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


More information about the libvir-list mailing list