DragonFlyBSD Kernel Audit
← dashboard
DF-0302

Failover state machine in input path runs without synchronization: concurrent state corruption

Summary

carp_proto_input_c(:1161) reads sc->sc_state then non-atomic transitions (callout_stop/carp_set_state/carp_setroute). No ASSERT_NETISR0 unlike carp_iamatch(:1609). Runs on any netisr CPU. Two packets on different CPUs -> both read same state -> double route deletion / inconsistent state.