unsafe-checker 是检查 Rust unsafe 代码与外部接口的 Skill。它要求说清为什么需要不安全操作,以及安全条件由谁保证。
裸指针解引用要核有效性、对齐和初始化;形成引用还需遵守别名约束。指针非空不等于对象还活着,NonNull 也不能证明生命周期正确。
调用 C 接口要核签名与调用约定,字符串先存下 CString,再把指针交出去,避免临时对象已被释放。SAFETY 注释应解释依据,公开不安全函数还要写调用者的义务。
主文速查的若干“修法”不能单独当证明:repr(C) 不自动解决所有对齐问题,MaybeUninit 不等于值已初始化,生成绑定也不保证接口使用安全。它适合有代码证据的审查;本文未审查或运行实际 Rust 项目。