mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-03-15 15:39:09 +01:00
OMs: fix panic sending to a two-hop blinded route where we are the intro node
This commit is contained in:
parent
a4e242ba5f
commit
7af02d0174
2 changed files with 9 additions and 7 deletions
|
@ -174,7 +174,7 @@ fn too_big_packet_error() {
|
|||
fn we_are_intro_node() {
|
||||
// If we are sending straight to a blinded route and we are the introduction node, we need to
|
||||
// advance the blinded route by 1 hop so the second hop is the new introduction node.
|
||||
let nodes = create_nodes(3);
|
||||
let mut nodes = create_nodes(3);
|
||||
let test_msg = TestCustomMessage {};
|
||||
|
||||
let secp_ctx = Secp256k1::new();
|
||||
|
@ -182,6 +182,12 @@ fn we_are_intro_node() {
|
|||
|
||||
nodes[0].messenger.send_onion_message(&[], Destination::BlindedRoute(blinded_route), OnionMessageContents::Custom(test_msg.clone()), None).unwrap();
|
||||
pass_along_path(&nodes, None);
|
||||
|
||||
// Try with a two-hop blinded route where we are the introduction node.
|
||||
let blinded_route = BlindedRoute::new(&[nodes[0].get_node_pk(), nodes[1].get_node_pk()], &*nodes[1].keys_manager, &secp_ctx).unwrap();
|
||||
nodes[0].messenger.send_onion_message(&[], Destination::BlindedRoute(blinded_route), OnionMessageContents::Custom(test_msg), None).unwrap();
|
||||
nodes.remove(2);
|
||||
pass_along_path(&nodes, None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -513,12 +513,8 @@ fn packet_payloads_and_keys<T: CustomOnionMessageContents, S: secp256k1::Signing
|
|||
next_blinding_override: Some(blinding_pt),
|
||||
})), control_tlvs_ss));
|
||||
}
|
||||
if let Some(encrypted_payload) = enc_payload_opt {
|
||||
payloads.push((Payload::Forward(ForwardControlTlvs::Blinded(encrypted_payload)),
|
||||
control_tlvs_ss));
|
||||
} else { debug_assert!(false); }
|
||||
blinded_path_idx += 1;
|
||||
} else if blinded_path_idx < num_blinded_hops - 1 && enc_payload_opt.is_some() {
|
||||
}
|
||||
if blinded_path_idx < num_blinded_hops.saturating_sub(1) && enc_payload_opt.is_some() {
|
||||
payloads.push((Payload::Forward(ForwardControlTlvs::Blinded(enc_payload_opt.unwrap())),
|
||||
control_tlvs_ss));
|
||||
blinded_path_idx += 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue