summaryrefslogtreecommitdiffstats
path: root/src/swarm/sync.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-26 22:16:34 +0100
committertv <tv@krebsco.de>2026-10-26 22:16:34 +0100
commit282eda719a303b4f5ae8ae05f0c11cac7b4a52ea (patch)
treed0dc38b16feb36e080b5dd224c5f11d684d76fec /src/swarm/sync.rs
parent5a32e746cf7aec3e4ca76616b6b66f023de53988 (diff)
reject and warn about too large delta blobs
Diffstat (limited to 'src/swarm/sync.rs')
-rw-r--r--src/swarm/sync.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/swarm/sync.rs b/src/swarm/sync.rs
index 70ce28e..4e382ec 100644
--- a/src/swarm/sync.rs
+++ b/src/swarm/sync.rs
@@ -346,6 +346,11 @@ pub(crate) async fn handle_sync(
return Ok(());
}
};
+ if payload.0.len() > crate::swarm::blob::MAX_SYNC_MESSAGE {
+ // Not decoded: a node of this version sends a delta instead.
+ warn!(peer = %peer, bytes = payload.0.len(), "Dropping a sync message larger than any sender should send");
+ return Ok(());
+ }
state.stats.sync_received(payload.0.len());
let applied = {