fix: alloc(0) call is UB#442
Conversation
|
@Licenser Does this have anything actionable for me? or is just pending due to time limitations? |
|
I'm fixing CI here(some clippy warnings and wastime installation) |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #442 +/- ##
==========================================
- Coverage 72.33% 72.16% -0.17%
==========================================
Files 51 49 -2
Lines 11435 11318 -117
==========================================
- Hits 8271 8168 -103
+ Misses 3164 3150 -14
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@Licenser Last two checks can't be green until merged to main (I think they will only be green in the next PRs) |
|
Heya @EmilyMatt, sorry for the long delay, live has been super busy and I have had every little time for open source. I'm trying to catch up a little 😅 and get your PR's merged. |
When calling alloc(), the layout must be non-zero, otherwise we fall into undefined behaviour.
This is documented in the function's docs:
https://doc.rust-lang.org/beta/src/core/alloc/global.rs.html#152
We can just make a dangling pointer for those cases, and not deallocate it
Found by running miri on tests::test_send_sync