]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #8250 - pr2502:fix_repeat_underflow, r=giraffate
authorbors <bors@rust-lang.org>
Fri, 28 Jan 2022 13:31:51 +0000 (13:31 +0000)
committerbors <bors@rust-lang.org>
Fri, 28 Jan 2022 13:31:51 +0000 (13:31 +0000)
Fix underflow in `manual_split_once` lint

Hi, a friend found clippy started crashing on a suspiciously large allocation of `u64::MAX` memory on their code.

The mostly minimized repro is:
```rust
fn _f01(title: &str) -> Option<()> {
    let _ = title[1..].splitn(2, '[').next()?;
    Some(())
}
```

The underflow happens in this case on line 57 of the patch but I've changed the other substraction to saturating as well since it could potentially cause the same issue.

I'm not sure where to put a regression test, or if it's even worth for such a thing.

Aside, has it been considered before to build clippy with overflow checks enabled?

changelog: fix ICE of underflow in `manual_split_once` lint

1  2 
clippy_lints/src/methods/str_splitn.rs