mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
fix two bugs in bridge_driver.c
steps to reproduce: 1. having a network xml file(named default.xml) like this one: <network> <name>default</name> <uuid>c5322c4c-81d0-4985-a363-ad6389780d89</uuid> <bridge name="virbr0" /> <forward/> <ip address="192.168.122.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.122.2" end="192.168.122.254" /> </dhcp> </ip> </network> in /etc/libvirt/qemu/networks/, and mark it as autostart: $ ls -l /etc/libvirt/qemu/networks/autostart total 0 lrwxrwxrwx 1 root root 14 Oct 12 14:02 default.xml -> ../default.xml 2. start libvirtd and the device virbr0 is not automatically up. The reason is that the function virNetDevExists is now returns 1 if the device exists, comparing to the former one returns 0 if the device exists. But with only this fix will cause a segmentation fault(the same steps as above) that is fixed by the second chunk of code.
This commit is contained in:
parent
e55ec69de6
commit
d3da21d656
@ -213,7 +213,7 @@ networkFindActiveConfigs(struct network_driver *driver) {
|
||||
|
||||
/* If bridge exists, then mark it active */
|
||||
if (obj->def->bridge &&
|
||||
virNetDevExists(obj->def->bridge) == 0) {
|
||||
virNetDevExists(obj->def->bridge) == 1) {
|
||||
obj->active = 1;
|
||||
|
||||
/* Try and read dnsmasq/radvd pids if any */
|
||||
@ -1814,8 +1814,10 @@ networkStartNetworkVirtual(struct network_driver *driver,
|
||||
if (!save_err)
|
||||
save_err = virSaveLastError();
|
||||
|
||||
ignore_value(virNetDevTapDelete(macTapIfName));
|
||||
VIR_FREE(macTapIfName);
|
||||
if (macTapIfName) {
|
||||
ignore_value(virNetDevTapDelete(macTapIfName));
|
||||
VIR_FREE(macTapIfName);
|
||||
}
|
||||
|
||||
err0:
|
||||
if (!save_err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user