fuzz: remove potential undefined behavior in chaos harness #80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The chaos harness has a potential UB bug reported by Miri due to mutable pointer aliasing. The
heap
object has a mutable reference toHEAP_MEM
, which gets invalidated when calculatingremaining_space
, as it does so through a mut pointer. Thus, usingheap
after using the pointer is technically undefined behavior under Rust's aliasing rules.linked-list-allocator/fuzz/fuzz_targets/chaos.rs
Line 36 in 3c9bafa
linked-list-allocator/fuzz/fuzz_targets/chaos.rs
Lines 84 to 87 in 3c9bafa
linked-list-allocator/fuzz/fuzz_targets/chaos.rs
Line 94 in 3c9bafa
Fix this by taking a const pointer.
Note that it is very unlikely this caused any actual issues under the current state of the compiler.
This can be tested by running the following reproducer (a simplified version of the chaos harness) under Miri (
cargo +nightly miri run
).Reproducer