aboutsummaryrefslogtreecommitdiffstats
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
commitc5ac1b649c343899286dccf87b5942c4ea7a2937 (patch)
treea147961a4f589043568e8588a992f4eddd0fb6f7 /src/swarm/sync.rs
parent79ec1d762bbf8655d4636fbaff1da379db25761f (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 = {