Inappropriate assertion in ipv4acd_on_packet() --> crash on incoming ARP packet
Version: NetworkManager-1.22.10 (applies also for current GIT version)
Distribution: Yocto dunfell (G_DISABLE_ASSERT is not defined)
src/systemd/src/libsystemd-network/sd-ipv4acd.c
static int ipv4acd_on_packet()
{
...
n = recv(...);
switch (acd->state) {
case foo:
...
break;
case bar:
...
break;
default:
assert_not_reached();
}
So NetworkManager will crash if an ARP packet (with a few extra conditions) is received while the state machine is not expecting it.
The assertion can easily be triggered externally if the selected IPv4 address is known in advance:
nping --arp --count 1000 --delay 100ms <ip address>