diff --git a/src/network/networkd-network-gperf.gperf b/src/network/networkd-network-gperf.gperf index adbba5f480..8bbdd290ad 100644 --- a/src/network/networkd-network-gperf.gperf +++ b/src/network/networkd-network-gperf.gperf @@ -72,7 +72,7 @@ Network.IPv6AcceptRouterAdvertisements, config_parse_tristate, Network.IPv6DuplicateAddressDetection, config_parse_int, 0, offsetof(Network, ipv6_dad_transmits) Network.IPv6HopLimit, config_parse_int, 0, offsetof(Network, ipv6_hop_limit) Network.IPv6ProxyNDP, config_parse_tristate, 0, offsetof(Network, ipv6_proxy_ndp) -Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, 0 +Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, offsetof(Network, ipv6_mtu) Network.ActiveSlave, config_parse_bool, 0, offsetof(Network, active_slave) Network.PrimarySlave, config_parse_bool, 0, offsetof(Network, primary_slave) Network.IPv4ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 4eb553125b..bf910956cb 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -413,7 +413,7 @@ void network_free(Network *network) { if (network->manager->networks) LIST_REMOVE(networks, network->manager->networks, network); - if (network->manager->networks_by_name) + if (network->manager->networks_by_name && network->name) hashmap_remove(network->manager->networks_by_name, network->name); if (network->manager->duids_requesting_uuid) diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11302 b/test/fuzz/fuzz-network-parser/oss-fuzz-11302 new file mode 100644 index 0000000000..0ef0dccbd0 --- /dev/null +++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11302 @@ -0,0 +1,2 @@ +[Network] +IPv6MTUBytes=7K \ No newline at end of file diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11314 b/test/fuzz/fuzz-network-parser/oss-fuzz-11314 new file mode 100644 index 0000000000..2fb68e9862 --- /dev/null +++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11314 @@ -0,0 +1,5 @@ + +[Network] +IPv6MTUBytes=6M + +Bond=