Hello, guys! I am doing some experiment to control XenServer with libvirt, when I define a
domain, it always fails and gives the following message:
error: Failed to define domain from /root/new.xml
error: internal error: Couldn't get VM information from XML
so I diving into the souce and found it always fails at network creating, and the code in
libvirt-1.3.5\src\xenapi\xenapi_utils.c, line 437 is following:
xen_vif_create(session, &vif, vif_record);
if (!vif) {
xen_vif_free(vif);
xen_vif_record_free(vif_record);
xen_network_record_free(net_rec);
xen_network_set_free(net_set);
return 0;
}
xen_vif_record_free(vif_record);
xen_network_record_free(net_rec);
... ...
return -1;
should this if be if (vif) {...}, if the vif is null, why need to free it?