P.UNS.FFI.15 从外部传入的不健壮类型的外部值要进行检查

【描述】

Safe Rust 会保证类型的有效性和安全性,但是 Unsafe Rust 中,特别是编写 FFi 的时候,很容易从外部传入无效值。

Rust 中很多类型都不太健壮:

  • 布尔类型。外部传入的布尔类型可能是数字也可能是字符串。
  • 引用类型。Rust 中的引用仅允许执行有效的内存对象,但是在Unsafe 中使用引用,任何偏差都可能引起未定义行为。
  • 函数指针。跨越 FFi 边界的函数指针可能导致任意代码执行。
  • Enum。 跨 FFi 边界两端的 枚举值要经过合法转换。
  • 浮点数。
  • 包含上述类型的复合类型