Merge pull request #19 from azr/azr/fix-overflow

create_request: avoid u16 overflow panic
This commit is contained in:
Igor Katson 2023-05-05 10:56:26 +01:00 committed by GitHub
commit 7a2de09794
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -81,7 +81,12 @@ impl DhtState {
fn create_request(&mut self, request: Request, addr: SocketAddr) -> Message<ByteString> {
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()),