RUSTSEC-2021-0047 on 2021-02-19: SliceDeque::drain_filter can double drop an element if the predicate panics

Affected versions of the crate incremented the current index of the drain filter iterator before calling the predicate function self.pred.

If the predicate function panics, it is possible for the last element in the iterator to be dropped twice.

CVE-2021-29938

GHSA-p9gf-gmfv-398m

This review is from cargo-vet. To add your review, set up cargo-vet and submit your URL to its registry.

cargo-vet does not verify reviewers' identity. You have to fully trust the source the audits are from.

unknown

May have been packaged automatically without a review


These reviews are from Crev, a distributed system for code reviews. To add your review, set up cargo-crev.

The current version of SliceDeque is 0.3.0.

0.2.0 (older version) Rating: Neutral Thoroughness: None Understanding: None

by dpc on 2019-07-01

0.1.16 (older version) Rating: Neutral Thoroughness: None Understanding: None

by dpc on 2019-07-02

Show review…

Lib.rs has been able to verify that all files in the crate's tarball are in the crate's repository. Please note that this check is still in beta, and absence of this confirmation does not mean that the files don't match.

Crates in the crates.io registry are tarball snapshots uploaded by crates' publishers. The registry is not using crates' git repositories, so there is a possibility that published crates have a misleading repository URL, or contain different code from the code in the repository.

To review the actual code of the crate, it's best to use cargo crev open slice-deque. Alternatively, you can download the tarball of slice-deque v0.3.0 or view the source online.