P.UNS.FFI.15 从外部传入的不健壮类型的外部值要进行检查
【描述】
Safe Rust 会保证类型的有效性和安全性,但是 Unsafe Rust 中,特别是编写 FFi 的时候,很容易从外部传入无效值。
Rust 中很多类型都不太健壮:
- 布尔类型。外部传入的布尔类型可能是数字也可能是字符串。
- 引用类型。Rust 中的引用仅允许执行有效的内存对象,但是在Unsafe 中使用引用,任何偏差都可能引起未定义行为。
- 函数指针。跨越 FFi 边界的函数指针可能导致任意代码执行。
- Enum。 跨 FFi 边界两端的 枚举值要经过合法转换。
- 浮点数。
- 包含上述类型的复合类型