[libvirt] [PATCH] conf: replace call to virNetworkFree() with virOjectUnref()

Martin Kletzander mkletzan at redhat.com
Sun Nov 30 20:37:29 UTC 2014


s/virOjectUnref/virObjectUnref/ in $SUBJ if you haven't pushed already.

On Tue, Nov 25, 2014 at 05:15:23AM -0500, Laine Stump wrote:
>The function virNetworkObjListExport() in network_conf.c had a call to
>the public API virNetworkFree() which was causing a link error:
>
>CCLD     libvirt_driver_vbox_network_impl.la
> ./.libs/libvirt_conf.a(libvirt_conf_la-network_conf.o): In function `virNetworkObjListExport':
>/home/laine/devel/libvirt/src/conf/network_conf.c:4496: undefined reference to `virNetworkFree'
>
>This would happen when I added
>
>  #include "network_conf.h"
>
>into domain_conf.c, then attempted to call a new function from that
>file (and enum converter, similar to virNetworkForwardTypeToString())
>
>In the end, virNetworkFree() ends up just calling virObjectUnref(obj)
>anyway (after clearing all pending errors, which we probably *don't*
>want to do in the cleanup of a utility function), so this is likely
>more correct than the original code as well.
>---
>
>A quick look showed that there may be other places where we are
>calling public APIs such as virNetworkFree and virDomainFree when we
>really don't want to be clearning out the pending error - this would
>result in the good old "an error was encountered but the cause is
>unknown" type of log messages. It may warrant an audit...
>
> src/conf/network_conf.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
>diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
>index 067334e..a249e32 100644
>--- a/src/conf/network_conf.c
>+++ b/src/conf/network_conf.c
>@@ -4463,10 +4463,8 @@ virNetworkObjListExport(virConnectPtr conn,
>
>  cleanup:
>     if (tmp_nets) {
>-        for (i = 0; i < nnets; i++) {
>-            if (tmp_nets[i])
>-                virNetworkFree(tmp_nets[i]);
>-        }
>+        for (i = 0; i < nnets; i++)
>+            virObjectUnref(tmp_nets[i]);
>     }
>
>     VIR_FREE(tmp_nets);
>--
>1.9.3
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20141130/f4900189/attachment-0001.sig>


More information about the libvir-list mailing list