From ef44f104a55353f9c5899e294d32ef13d61b3840 Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Fri, 29 Mar 2024 20:40:05 +0000 Subject: [PATCH] disconnect peers that send bad data --- crates/librqbit/src/torrent_state/live/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/librqbit/src/torrent_state/live/mod.rs b/crates/librqbit/src/torrent_state/live/mod.rs index bd080b6..2f74e00 100644 --- a/crates/librqbit/src/torrent_state/live/mod.rs +++ b/crates/librqbit/src/torrent_state/live/mod.rs @@ -1397,11 +1397,15 @@ impl PeerHandler { self.state.maybe_transmit_haves(chunk_info.piece_index); } false => { - warn!("checksum for piece={} did not validate", index,); + warn!( + "checksum for piece={} did not validate. disconecting peer.", + index + ); self.state .lock_write("mark_piece_broken") .get_chunks_mut()? .mark_piece_broken_if_not_have(chunk_info.piece_index); + anyhow::bail!("i am probably a bogus peer. dying.") } }; Ok::<_, anyhow::Error>(())