[libvirt] [PATCH] Don't free NULL network in cmdNetworkUpdate

Michal Privoznik mprivozn at redhat.com
Tue Aug 27 12:11:33 UTC 2013

On 27.08.2013 14:07, Eric Blake wrote:
> On 08/27/2013 06:03 AM, Laine Stump wrote:
>> On 08/26/2013 09:39 AM, Ján Tomko wrote:
>>> If the network has not been found, virNetworkFree(NULL)
>>> was called, resulting in an extra error:
>>> error: invalid network pointer in virNetworkFree
>> The patch is okay, but all vir*Free() functions should be NOPs when the
>> argument is NULL.
> All _internal_ vir*Free functions should be NOPs.  All public vir*Free
> APIs (including virNetworkFree) are documented to explicitly fail on
> NULL arguments (more precisely, on any argument not created by an
> earlier API call), and we cannot change that behavior as it would be an
> API change that violates back-compat.

Why it would break backward compatibility? I think it will break forward
compatibility instead (which we don't care about). That is, currently
apps have to use:

virXPtr obj = NULL;

obj = virLookupBy..();

... do something with obj;

ret = 0;
if (obj)

However, if virXFree would accept NULL, it won't affect older
applications, while new can just:


But then again, this is forward compatibility (the code won't work with
downgraded libvirtd) - but who cares?


More information about the libvir-list mailing list