@@ -27,12 +27,12 @@ This release fixes two issues, a soundness bug in the new
27
27
components of the Rust distribution were [ not compiled with ` -fPIC ` ] [ fpic ] . The
28
28
latter results in the text section of executables being writable in some
29
29
configurations, including common Linux configurations, subverting an important
30
- attack mitigation, and causing longer startup times by causing the linker to do
30
+ attack mitigation, and creating longer startup times by causing the linker to do
31
31
more work. For mostly-Rust codebases, the practical impact of losing read-only
32
32
text sections is relatively small (since Rust's type system is its first line of
33
33
defense), but for Rust linked into other codebases the impact could be
34
- unexpectedly quite significant. The details of the bug are not that interesting
35
- though, and rest of this post focuses on the former soundness bug.
34
+ unexpectedly quite significant. PIC issues are well understood and not
35
+ Rust-specific, so the rest of this post focuses on the soundness bug.
36
36
37
37
[ fpic ] : https://github.com/rust-lang/rust/pull/39523
38
38
@@ -100,14 +100,11 @@ out a mutable slice.
100
100
So we made that change, and we're releasing a fix. In Rust we take pride in not
101
101
breaking APIs, but since this is a new, minor feature, and the present
102
102
implementation is spectacularly unsound, we decided to go ahead and release the
103
- fix immediately, hopefully before too many codebases pick it up - that is, we
103
+ fix immediately, hopefully before too many codebases pick it up — that is, we
104
104
don't consider this a breaking change that requires a careful transition, but a
105
105
necessary bug fix. For more about Rust's approach to ensuring stability see the
106
106
[ "Stability as a Deliverable"] [ stab ] blog post, [ RFC 1122] , on language
107
- evolution, and [ RFC 1105] , on library evolution (curiously, RFC 1105 does not
108
- actually contain any language allowing for library breakage due to soundness,
109
- but the intent has always been clear that Rust reserves the right to break code to
110
- fix soundness holes).
107
+ evolution, and [ RFC 1105] , on library evolution.
111
108
112
109
[ stab ] : https://blog.rust-lang.org/2014/10/30/Stability.html
113
110
[ RFC 1122 ] : https://github.com/rust-lang/rfcs/blob/master/text/1122-language-semver.md
0 commit comments