mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Correct handling of corner-cases involving custom iterators:
- Under some conditions, comparing `ReadViewFwdRange::iterators` for equality could derefence an empty `std::unique_ptr` which will result in a crash. - Misuse of the `equal` API could result in a `std::bad_cast` exception being thrown from when iterating transactions or SLEs from the `OpenView`, `RawStateTable` and `Ledger` classes.
This commit is contained in:
@@ -37,7 +37,6 @@ static_assert(!std::is_move_constructible<SHAMap>{}, "");
|
||||
static_assert(!std::is_move_assignable<SHAMap>{}, "");
|
||||
|
||||
static_assert(std::is_nothrow_destructible<SHAMap::const_iterator>{}, "");
|
||||
static_assert(std::is_default_constructible<SHAMap::const_iterator>{}, "");
|
||||
static_assert(std::is_copy_constructible<SHAMap::const_iterator>{}, "");
|
||||
static_assert(std::is_copy_assignable<SHAMap::const_iterator>{}, "");
|
||||
static_assert(std::is_move_constructible<SHAMap::const_iterator>{}, "");
|
||||
|
||||
Reference in New Issue
Block a user