#lifetime #extend #bug #safe #behavior #free #life

lifetime-extender

这个包发布是为了一个严重的漏洞,允许用户编写安全代码来扩展任何对象的生存期,这是不可接受的,因为这种行为可能导致UAF、双重释放和许多未定义行为。这个包不应在现实生活中使用,因为它依赖于一个漏洞,而不是一个特性。

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 功能门可以启用所有功能。

无运行时依赖

功能