hotfix: ensure we bail on merkle leaves insertion upon missing data (#5565)

* hotfix: ensure we bail on merkle leaves insertion upon missing data

* Update Cargo.toml

---------

Co-authored-by: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
This commit is contained in:
Jędrzej Stuczyński
2025-03-05 16:44:35 +00:00
committed by mfahampshire
parent 28d1d9d989
commit 24d32a64e0
2 changed files with 7 additions and 4 deletions
+2 -2
View File
@@ -4,7 +4,7 @@
[package]
name = "nym-api"
license = "GPL-3.0"
version = "1.1.51"
version = "1.1.52"
authors.workspace = true
edition = "2021"
rust-version.workspace = true
@@ -144,4 +144,4 @@ rand_chacha = { workspace = true }
sha2 = "0.9"
[lints]
workspace = true
workspace = true
+5 -2
View File
@@ -33,14 +33,17 @@ impl DailyMerkleTree {
.into_iter()
.map(|l| (l.merkle_index, l))
.collect();
let total_leaves = leaves.len();
let mut sorted_leaves = Vec::new();
for i in 0..leaves.len() {
if let Some(next_leaf) = leaves.remove(&i) {
sorted_leaves.push(next_leaf);
} else {
let lost = leaves.len() - i + 1;
error!("failed to produce consistent merkle tree. there was no leaf with index {i}. at least {lost} leaves got lost")
let lost = total_leaves - i + 1;
error!("failed to produce consistent merkle tree. there was no leaf with index {i}. at least {lost} leaves got lost");
// we have to drop all data above that height because we can't rebuild the full tree
break;
}
}