Skip to content
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

interpret, miri: fix dealing with overflow during slice indexing and allocation #130342

Merged
merged 2 commits into from
Sep 15, 2024

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Sep 14, 2024

This is mostly to fix #130284.

I then realized we're using somewhat sketchy arguments for a similar multiplication in copy/copy_nonoverlapping/write_bytes, so I made them all share the same function that checks exactly the right thing. (The intrinsics would previously fail on allocations larger than 1 << 47 bytes... which are theoretically possible maybe? Anyway it seems conceptually wrong to use any other bound than isize::MAX here.)

@rustbot
Copy link
Collaborator

rustbot commented Sep 14, 2024

r? @fee1-dead

rustbot has assigned @fee1-dead.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 14, 2024
@rustbot
Copy link
Collaborator

rustbot commented Sep 14, 2024

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbot
Copy link
Collaborator

rustbot commented Sep 14, 2024

The Miri subtree was changed

cc @rust-lang/miri

@RalfJung RalfJung force-pushed the slice-idx-overflow branch 2 times, most recently from 86d5c6c to 6aa14a8 Compare September 14, 2024 08:42
@RalfJung RalfJung changed the title interpret: fix dealing with overflow during slice indexing interpret, miri: fix dealing with overflow during slice indexing and allocation Sep 14, 2024
@saethlin
Copy link
Member

r? saethlin
@bors r+

@bors
Copy link
Contributor

bors commented Sep 15, 2024

📌 Commit 268f6cf has been approved by saethlin

It is now in the queue for this repository.

@rustbot rustbot assigned saethlin and unassigned fee1-dead Sep 15, 2024
@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 15, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 15, 2024
…iaskrgr

Rollup of 5 pull requests

Successful merges:

 - rust-lang#129439 (Implement feature `string_from_utf8_lossy_owned` for lossy conversion from `Vec<u8>` to `String` methods)
 - rust-lang#129828 (miri: treat non-memory local variables properly for data race detection)
 - rust-lang#130110 (make dist vendoring configurable)
 - rust-lang#130293 (Fix lint levels not getting overridden by attrs on `Stmt` nodes)
 - rust-lang#130342 (interpret, miri: fix dealing with overflow during slice indexing and allocation)

Failed merges:

 - rust-lang#130394 (const: don't ICE when encountering a mutable ref to immutable memory)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 96195a5 into rust-lang:master Sep 15, 2024
6 checks passed
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Sep 15, 2024
Rollup merge of rust-lang#130342 - RalfJung:slice-idx-overflow, r=saethlin

interpret, miri: fix dealing with overflow during slice indexing and allocation

This is mostly to fix rust-lang#130284.

I then realized we're using somewhat sketchy arguments for a similar multiplication in `copy`/`copy_nonoverlapping`/`write_bytes`,  so I made them all share the same function that checks exactly the right thing. (The intrinsics would previously fail on allocations larger than `1 << 47` bytes... which are theoretically possible maybe? Anyway it seems conceptually wrong to use any other bound than `isize::MAX` here.)
@rustbot rustbot added this to the 1.83.0 milestone Sep 15, 2024
@RalfJung RalfJung deleted the slice-idx-overflow branch September 21, 2024 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ICE: CTFE/miri crashes with overflow in built-in array index
5 participants