You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix pre-noise peer disconnect panic on non-Err disconnect
366e796 fixed the same crash for
Errs that come up during handshake, but was incomplete and should
have just dropped the node_id being different based on
inbound/outbound. This patch does so and actually fixes the issue.
Found by fuzzer.
let our_node_id = SecretKey::from_slice(&secp_ctx,&hex::decode("1111111111111111111111111111111111111111111111111111111111111111").unwrap()[..]).unwrap();
695
695
696
696
let act_two = hex::decode("0002466d7fcae563e5cb09a0d1870bb580344804617879a14949cf22285f1bae3f276e2470b93aac583c9ef6eafca3f730ae").unwrap().to_vec();
let next_step = peer.channel_encryptor.get_noise_step();
518
512
match next_step {
519
513
NextNoiseStep::ActOne => {
520
-
let act_two = try_potential_handleerror!(peer.channel_encryptor.process_act_one_with_key(&peer.pending_read_buffer[..],&self.our_node_secret),true).to_vec();
514
+
let act_two = try_potential_handleerror!(peer.channel_encryptor.process_act_one_with_key(&peer.pending_read_buffer[..],&self.our_node_secret)).to_vec();
521
515
peer.pending_outbound_buffer.push_back(act_two);
522
516
peer.pending_read_buffer = [0;66].to_vec();// act three is 66 bytes long
523
517
},
524
518
NextNoiseStep::ActTwo => {
525
-
let act_three= try_potential_handleerror!(peer.channel_encryptor.process_act_two(&peer.pending_read_buffer[..],&self.our_node_secret),true).to_vec();
0 commit comments