Skip to content

Commit

Permalink
Use test_msg_exact in channl_update fuzz testing
Browse files Browse the repository at this point in the history
Gossip messages should always use `test_msg_exact` to ensure they
round-trip during signature validation.
  • Loading branch information
TheBlueMatt committed Jun 25, 2024
1 parent 67cddc1 commit 0fa0c2d
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
5 changes: 4 additions & 1 deletion fuzz/src/msg_targets/gen_target.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,17 @@ GEN_TEST lightning::ln::msgs::ChannelReestablish test_msg_simple ""

GEN_TEST lightning::ln::msgs::DecodedOnionErrorPacket test_msg ""

# Gossip messages need to use `test_msg_exact` to ensure that messages
# round-trip exactly when doing signature validation.
GEN_TEST lightning::ln::msgs::ChannelAnnouncement test_msg_exact ""
GEN_TEST lightning::ln::msgs::NodeAnnouncement test_msg_exact ""
GEN_TEST lightning::ln::msgs::ChannelUpdate test_msg_exact ""

GEN_TEST lightning::ln::msgs::QueryShortChannelIds test_msg ""
GEN_TEST lightning::ln::msgs::ReplyChannelRange test_msg ""

GEN_TEST lightning::ln::msgs::ErrorMessage test_msg_hole ", 32, 2"
GEN_TEST lightning::ln::msgs::WarningMessage test_msg_hole ", 32, 2"
GEN_TEST lightning::ln::msgs::ChannelUpdate test_msg_hole ", 108, 1"

GEN_TEST lightning::ln::channel_state::ChannelDetails test_msg_simple ""

Expand Down
2 changes: 1 addition & 1 deletion fuzz/src/msg_targets/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ pub mod msg_channel_reestablish;
pub mod msg_decoded_onion_error_packet;
pub mod msg_channel_announcement;
pub mod msg_node_announcement;
pub mod msg_channel_update;
pub mod msg_query_short_channel_ids;
pub mod msg_reply_channel_range;
pub mod msg_error_message;
pub mod msg_warning_message;
pub mod msg_channel_update;
pub mod msg_channel_details;
pub mod msg_open_channel_v2;
pub mod msg_accept_channel_v2;
Expand Down
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_channel_update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use crate::utils::test_logger;

#[inline]
pub fn msg_channel_update_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg_hole!(lightning::ln::msgs::ChannelUpdate, data, 108, 1);
test_msg_exact!(lightning::ln::msgs::ChannelUpdate, data);
}

#[no_mangle]
pub extern "C" fn msg_channel_update_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg_hole!(lightning::ln::msgs::ChannelUpdate, data, 108, 1);
test_msg_exact!(lightning::ln::msgs::ChannelUpdate, data);
}

0 comments on commit 0fa0c2d

Please sign in to comment.