Automatic Inference and Enforcement of Kernel Data Structure Invariants | Synapse