pijul nest
guest [sign in]

Fixing a bug with tokio::select

[?]
Nov 23, 2020, 5:25 PM
XEKZBXNINGU2NELIKOQXWY5SS4MOVEVXX3QWQUSN42X7V46CQDKQC

Dependencies

  • [2] 7FRJYUI6 Reboot because of a bad change

Change contents

  • edit in thrussh/src/server/session.rs at line 151
    [2.192873]
    [2.192873]
    debug!("starting rekeying");
  • replacement in thrussh/src/cipher/mod.rs at line 110
    [2.412048][2.412048:412515]()
    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);
    [2.412048]
    [2.412515]
    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
    [2.412521]
    [2.412521]
    buffer.buffer.resize(buffer.len + 4);
    debug!("read_exact {:?}", buffer.len + 4);
  • edit in thrussh/src/cipher/mod.rs at line 128
    [2.412576]
    [2.412576]
    debug!("read_exact done");
  • replacement in thrussh/src/cipher/mod.rs at line 136
    [2.412896][2.412896:412947]()
    debug!("padding_length {:?}", padding_length);
    [2.412896]
    [2.412947]
    debug!("reading, padding_length {:?}", padding_length);
  • replacement in thrussh/src/cipher/mod.rs at line 159
    [2.413618][2.413618:413619]()
    [2.413618]
    [2.413619]
    debug!("writing, seqn = {:?}", buffer.seqn.0);