Fixing a bug with tokio::select
[?]
Nov 23, 2020, 5:25 PM
XEKZBXNINGU2NELIKOQXWY5SS4MOVEVXX3QWQUSN42X7V46CQDKQCDependencies
- [2]
7FRJYUI6Reboot because of a bad change
Change contents
- edit in thrussh/src/server/session.rs at line 151
debug!("starting rekeying"); - replacement in thrussh/src/cipher/mod.rs at line 110
let mut len = [0; 4];stream.read_exact(&mut len).await?;debug!("len = {:?}", len);{let key = pair.remote_to_local.as_opening_key();let seqn = buffer.seqn.0;buffer.buffer.clear();buffer.buffer.extend(&len);let len = key.decrypt_packet_length(seqn, len);let len = BigEndian::read_u32(&len) as usize + key.tag_len();debug!("clear len = {:?}", len);buffer.buffer.resize(len + 4);if buffer.len == 0 {let mut len = [0; 4];stream.read_exact(&mut len).await?;debug!("reading, len = {:?}", len);{let key = pair.remote_to_local.as_opening_key();let seqn = buffer.seqn.0;buffer.buffer.clear();buffer.buffer.extend(&len);debug!("reading, seqn = {:?}", seqn);let len = key.decrypt_packet_length(seqn, len);buffer.len = BigEndian::read_u32(&len) as usize + key.tag_len();debug!("reading, clear len = {:?}", buffer.len);} - edit in thrussh/src/cipher/mod.rs at line 125
buffer.buffer.resize(buffer.len + 4);debug!("read_exact {:?}", buffer.len + 4); - edit in thrussh/src/cipher/mod.rs at line 128
debug!("read_exact done"); - replacement in thrussh/src/cipher/mod.rs at line 136
debug!("padding_length {:?}", padding_length);debug!("reading, padding_length {:?}", padding_length); - replacement in thrussh/src/cipher/mod.rs at line 159
debug!("writing, seqn = {:?}", buffer.seqn.0);