Merged
Merged
Conversation
| feature, and the present implementation is spectacularly unsound, we decided to | ||
| go ahead and release the fix immediately, hopefully before too many codebases | ||
| pick it up - that is, we don't consider this a breaking change that requires a | ||
| careful transition, but a necessary bug fix. |
| necessary bug fix. For more about Rust's approach to ensuring stability see the | ||
| ["Stability as a Deliverable"][stab] blog post, [RFC 1122], on language | ||
| evolution, and [RFC 1105], on library evolution (curiously, RFC 1105 does not | ||
| actually contain any language allowing for library breakage due to soundness, |
| attestation that the block is correct to bolt-on theorem provers. At the moment | ||
| the Rust library team doesn't have plans to make process changes based on this | ||
| mistake, but unsafe validation in Rust will be an area of active research | ||
| forever, and we'll continue to evaluate our options. |
| more work. For mostly-Rust codebases, the practical impact of losing read-only | ||
| text sections is relatively small (since Rust's type system is its first line of | ||
| defense), but for Rust linked into other codebases the impact could be | ||
| unexpectedly quite significant. The details of the bug are not that interesting |
| So we made that change, and we're releasing a fix. In Rust we take pride in not | ||
| breaking APIs, but since this is a new, minor feature, and the present | ||
| implementation is spectacularly unsound, we decided to go ahead and release the | ||
| fix immediately, hopefully before too many codebases pick it up - that is, we |
| don't consider this a breaking change that requires a careful transition, but a | ||
| necessary bug fix. For more about Rust's approach to ensuring stability see the | ||
| ["Stability as a Deliverable"][stab] blog post, [RFC 1122], on language | ||
| evolution, and [RFC 1105], on library evolution (curiously, RFC 1105 does not |
| components of the Rust distribution were [not compiled with `-fPIC`][fpic]. The | ||
| latter results in the text section of executables being writable in some | ||
| configurations, including common Linux configurations, subverting an important | ||
| attack mitigation, and causing longer startup times by causing the linker to do |
Labels
None yet