Skip to content

alloc_error_handler can be an unsafe fn which is then unsoundly invoked #134225

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
Tracked by #51540
RalfJung opened this issue Dec 12, 2024 · 0 comments
Open
Tracked by #51540

alloc_error_handler can be an unsafe fn which is then unsoundly invoked #134225

RalfJung opened this issue Dec 12, 2024 · 0 comments
Labels
C-bug Category: This is a bug. I-unsound Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness requires-nightly This issue requires a nightly compiler in some way. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@RalfJung
Copy link
Member

This code currently compiles:

#![feature(alloc_error_handler)]
#![no_std]

extern crate alloc;

#[alloc_error_handler]
unsafe fn f(_: alloc::alloc::Layout) -> ! {
    core::hint::unreachable_unchecked();
}

This is unsound if the alloc error handler ever gets invoked.

The alloc_error_handler feature is still unstable, tracking issue: #51540

@RalfJung RalfJung added I-unsound Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness requires-nightly This issue requires a nightly compiler in some way. labels Dec 12, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Dec 12, 2024
@jieyouxu jieyouxu added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Dec 13, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
C-bug Category: This is a bug. I-unsound Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness requires-nightly This issue requires a nightly compiler in some way. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

3 participants