1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-31 14:50:15 +03:00

networkd: veth - fix creation of veth netdev

Avoid freeing the netdev structure in the cleanup macro.
This commit is contained in:
Tom Gundersen 2014-06-20 12:59:22 +02:00
parent 375eadd911
commit 6278a20190

View File

@ -691,7 +691,8 @@ static int netdev_load_one(Manager *manager, const char *filename) {
LIST_HEAD_INIT(netdev->callbacks);
if(netdev->kind == NETDEV_KIND_VETH) {
switch (netdev->kind) {
case NETDEV_KIND_VETH:
if (!netdev->ifname_peer) {
log_warning("Veth NetDev without peer name configured "
"in %s. Ignoring", filename);
@ -707,19 +708,19 @@ static int netdev_load_one(Manager *manager, const char *filename) {
}
}
return netdev_create_veth(netdev, netdev_create_handler);
}
r = netdev_create_veth(netdev, netdev_create_handler);
if (r < 0)
return r;
if (netdev->kind != NETDEV_KIND_VLAN &&
netdev->kind != NETDEV_KIND_MACVLAN &&
netdev->kind != NETDEV_KIND_VXLAN &&
netdev->kind != NETDEV_KIND_IPIP &&
netdev->kind != NETDEV_KIND_GRE &&
netdev->kind != NETDEV_KIND_SIT &&
netdev->kind != NETDEV_KIND_VTI) {
break;
case NETDEV_KIND_BRIDGE:
case NETDEV_KIND_BOND:
r = netdev_create(netdev, NULL, NULL);
if (r < 0)
return r;
break;
default:
break;
}
log_debug_netdev(netdev, "loaded %s", netdev_kind_to_string(netdev->kind));