diff options
author | Alexander Blair <snipa@jagtech.io> | 2021-01-01 22:44:24 -0800 |
---|---|---|
committer | Alexander Blair <snipa@jagtech.io> | 2021-01-01 22:44:24 -0800 |
commit | 21073379992ddf0f7f8eba03df20718205cd694e (patch) | |
tree | f6df725d7c5025f197a4272074e34de119aaf0d9 | |
parent | Merge pull request #7249 (diff) | |
parent | Restrict duplicate keys in epee binary format (diff) | |
download | monero-21073379992ddf0f7f8eba03df20718205cd694e.tar.xz |
Merge pull request #7251
f0b867b13 Restrict duplicate keys in epee binary format (Lee Clagett)
-rw-r--r-- | contrib/epee/include/storages/portable_storage_from_bin.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/contrib/epee/include/storages/portable_storage_from_bin.h b/contrib/epee/include/storages/portable_storage_from_bin.h index 631ad307b..3dc60ba71 100644 --- a/contrib/epee/include/storages/portable_storage_from_bin.h +++ b/contrib/epee/include/storages/portable_storage_from_bin.h @@ -301,7 +301,9 @@ namespace epee //read section name string std::string sec_name; read_sec_name(sec_name); - sec.m_entries.emplace(std::move(sec_name), load_storage_entry()); + const auto insert_loc = sec.m_entries.lower_bound(sec_name); + CHECK_AND_ASSERT_THROW_MES(insert_loc == sec.m_entries.end() || insert_loc->first != sec_name, "duplicate key: " << sec_name); + sec.m_entries.emplace_hint(insert_loc, std::move(sec_name), load_storage_entry()); } } inline |