From 7af02d01748febbe45127e5702c36775c69e326c Mon Sep 17 00:00:00 2001 From: Valentine Wallace Date: Mon, 31 Oct 2022 12:40:06 -0400 Subject: [PATCH] OMs: fix panic sending to a two-hop blinded route where we are the intro node --- lightning/src/onion_message/functional_tests.rs | 8 +++++++- lightning/src/onion_message/messenger.rs | 8 ++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lightning/src/onion_message/functional_tests.rs b/lightning/src/onion_message/functional_tests.rs index 991f0d1c2..81826a62c 100644 --- a/lightning/src/onion_message/functional_tests.rs +++ b/lightning/src/onion_message/functional_tests.rs @@ -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] diff --git a/lightning/src/onion_message/messenger.rs b/lightning/src/onion_message/messenger.rs index 4eb0ada38..70a0842c7 100644 --- a/lightning/src/onion_message/messenger.rs +++ b/lightning/src/onion_message/messenger.rs @@ -513,12 +513,8 @@ fn packet_payloads_and_keys