2 个版本
0.1.1 | 2023年12月12日 |
---|---|
0.1.0 | 2023年12月11日 |
#24 in #extend
15KB
74 行
一个非常不安全的生存期扩展器,只使用安全的 Rust
这个包发布是为了一个严重的漏洞,允许用户编写安全代码来扩展任何对象的生存期,这是不可接受的,因为这种行为可能导致UAF、双重释放和许多未定义行为。这个包不应在现实生活中使用,因为它依赖于一个漏洞,而不是一个特性。
这里提供了两个函数,一个是 extend
,可以将任何借用期的生存期扩展到 'static
(应该是最长的生存期),另一个是可变版本 extend_mut
,可以扩展可变借用。前者可能导致UAF,后者
该包使用 !#[forbid(unsafe_code)]
来确保只使用安全的 Rust。
所有函数都是ZCA,可以直接优化掉。
默认情况下,所有函数都是隐藏的,因为你不应该使用它们中的任何一个。你可以使用相关的功能(以防其中一些已经修复,而其他尚未修复)来测试它们。使用最危险的 i-can-do-whatever-the-fxxk-i-want
功能门可以启用所有功能。