-
Couldn't load subscription status.
- Fork 13.9k
Rewrite Gankra's provenance draft to be lib-only #95229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
r? @scottmcm (rust-highfive has picked a reviewer for you, use r? to override) |
|
Apologies. I thought highfive knew better than that. |
6176e4f to
d93c8ce
Compare
This comment has been minimized.
This comment has been minimized.
d93c8ce to
cd9a52b
Compare
This patch series examines the question: how bad would it be if we adopted an extremely strict pointer provenance model that completely banished all int<->ptr casts. The key insight to making this approach even *vaguely* pallatable is the ptr.with_addr(addr) -> ptr function, which takes a pointer and an address and creates a new pointer with that address and the provenance of the input pointer. In this way the "chain of custody" is completely and dynamically restored, making the model suitable even for dynamic checkers like CHERI and Miri. This is not a formal model, but lots of the docs discussing the model have been updated to try to the *concept* of this design in the hopes that it can be iterated on. Many new methods have been added to ptr to attempt to fill in semantic gaps that this introduces, or to just get the ball rolling on "hey this is a problem that needs to be solved, here's a bad solution as a starting point".
Still working on this, but it seems to largely be a lot of `as usize` -> `.addr()`
Why does rustc do oh so many crimes? Oh so many...
cd9a52b to
f32e585
Compare
This comment has been minimized.
This comment has been minimized.
and unsafe and ptr methods and cleaning up unused uses and intra-doc links...
f32e585 to
8cc6326
Compare
|
☔ The latest upstream changes (presumably #95173) made this pull request unmergeable. Please resolve the merge conflicts. |
|
This has become, in effect, #95241. |
See #95199 if you want to know what all the fuss is about.