From aa4914eda4a6dd1357ff7e5a13336a69635fa0c2 Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Sun, 23 Apr 2023 17:55:52 +0200 Subject: [PATCH] create_request: avoid u16 overflow --- crates/dht/src/dht.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/dht/src/dht.rs b/crates/dht/src/dht.rs index a4fda61..88a9592 100644 --- a/crates/dht/src/dht.rs +++ b/crates/dht/src/dht.rs @@ -81,7 +81,12 @@ impl DhtState { fn create_request(&mut self, request: Request, addr: SocketAddr) -> Message { let transaction_id = self.next_transaction_id; let transaction_id_buf = [(transaction_id >> 8) as u8, (transaction_id & 0xff) as u8]; - self.next_transaction_id += 1; + + self.next_transaction_id = if transaction_id == u16::MAX { + 0 + } else { + transaction_id + 1 + }; let message = match request { Request::GetPeers(info_hash) => Message { transaction_id: ByteString::from(transaction_id_buf.as_ref()),