Skip to content

Simplify Message Serialization and Parse TLV Suffix #1068

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 18, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions fuzz/src/chanmon_consistency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,6 @@ impl Writer for VecWriter {
self.0.extend_from_slice(buf);
Ok(())
}
fn size_hint(&mut self, size: usize) {
self.0.reserve_exact(size);
}
}

struct TestChainMonitor {
Expand Down
3 changes: 0 additions & 3 deletions fuzz/src/chanmon_deser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ impl Writer for VecWriter {
self.0.extend_from_slice(buf);
Ok(())
}
fn size_hint(&mut self, size: usize) {
self.0.reserve_exact(size);
}
}

#[inline]
Expand Down
46 changes: 23 additions & 23 deletions fuzz/src/msg_targets/gen_target.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,36 +11,36 @@ echo "mod utils;" > mod.rs

# Note when adding new targets here you should add a similar line in src/bin/gen_target.sh

GEN_TEST AcceptChannel test_msg ""
GEN_TEST AnnouncementSignatures test_msg ""
GEN_TEST AcceptChannel test_msg_simple ""
GEN_TEST AnnouncementSignatures test_msg_simple ""
GEN_TEST ClosingSigned test_msg_simple ""
GEN_TEST CommitmentSigned test_msg_simple ""
GEN_TEST FundingCreated test_msg_simple ""
GEN_TEST FundingLocked test_msg_simple ""
GEN_TEST FundingSigned test_msg_simple ""
GEN_TEST GossipTimestampFilter test_msg_simple ""
GEN_TEST Init test_msg_simple ""
GEN_TEST OnionHopData test_msg_simple ""
GEN_TEST OpenChannel test_msg_simple ""
GEN_TEST Ping test_msg_simple ""
GEN_TEST Pong test_msg_simple ""
GEN_TEST QueryChannelRange test_msg_simple ""
GEN_TEST ReplyShortChannelIdsEnd test_msg_simple ""
GEN_TEST RevokeAndACK test_msg_simple ""
GEN_TEST Shutdown test_msg_simple ""
GEN_TEST UpdateAddHTLC test_msg_simple ""
GEN_TEST UpdateFailHTLC test_msg_simple ""
GEN_TEST UpdateFailMalformedHTLC test_msg_simple ""
GEN_TEST UpdateFee test_msg_simple ""
GEN_TEST UpdateFulfillHTLC test_msg_simple ""

GEN_TEST ChannelReestablish test_msg ""
GEN_TEST CommitmentSigned test_msg ""
GEN_TEST DecodedOnionErrorPacket test_msg ""
GEN_TEST FundingCreated test_msg ""
GEN_TEST FundingLocked test_msg ""
GEN_TEST FundingSigned test_msg ""
GEN_TEST OpenChannel test_msg ""
GEN_TEST RevokeAndACK test_msg ""
GEN_TEST Shutdown test_msg ""
GEN_TEST UpdateFailHTLC test_msg ""
GEN_TEST UpdateFailMalformedHTLC test_msg ""
GEN_TEST UpdateFee test_msg ""
GEN_TEST UpdateFulfillHTLC test_msg ""

GEN_TEST ChannelAnnouncement test_msg_exact ""
GEN_TEST NodeAnnouncement test_msg_exact ""
GEN_TEST QueryShortChannelIds test_msg ""
GEN_TEST ReplyShortChannelIdsEnd test_msg ""
GEN_TEST QueryChannelRange test_msg ""
GEN_TEST ReplyChannelRange test_msg ""
GEN_TEST GossipTimestampFilter test_msg ""

GEN_TEST UpdateAddHTLC test_msg_hole ", 85, 33"
GEN_TEST ErrorMessage test_msg_hole ", 32, 2"
GEN_TEST ChannelUpdate test_msg_hole ", 108, 1"

GEN_TEST ClosingSigned test_msg_simple ""
GEN_TEST Init test_msg_simple ""
GEN_TEST OnionHopData test_msg_simple ""
GEN_TEST Ping test_msg_simple ""
GEN_TEST Pong test_msg_simple ""
22 changes: 11 additions & 11 deletions fuzz/src/msg_targets/mod.rs
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
mod utils;
pub mod msg_accept_channel;
pub mod msg_announcement_signatures;
pub mod msg_channel_reestablish;
pub mod msg_closing_signed;
pub mod msg_commitment_signed;
pub mod msg_decoded_onion_error_packet;
pub mod msg_funding_created;
pub mod msg_funding_locked;
pub mod msg_funding_signed;
pub mod msg_gossip_timestamp_filter;
pub mod msg_init;
pub mod msg_onion_hop_data;
pub mod msg_open_channel;
pub mod msg_ping;
pub mod msg_pong;
pub mod msg_query_channel_range;
pub mod msg_reply_short_channel_ids_end;
pub mod msg_revoke_and_ack;
pub mod msg_shutdown;
pub mod msg_update_add_htlc;
pub mod msg_update_fail_htlc;
pub mod msg_update_fail_malformed_htlc;
pub mod msg_update_fee;
pub mod msg_update_fulfill_htlc;
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_query_short_channel_ids;
pub mod msg_reply_short_channel_ids_end;
pub mod msg_query_channel_range;
pub mod msg_reply_channel_range;
pub mod msg_gossip_timestamp_filter;
pub mod msg_update_add_htlc;
pub mod msg_error_message;
pub mod msg_channel_update;
pub mod msg_closing_signed;
pub mod msg_init;
pub mod msg_onion_hop_data;
pub mod msg_ping;
pub mod msg_pong;
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_accept_channel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_accept_channel_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::AcceptChannel, data);
test_msg_simple!(msgs::AcceptChannel, data);
}

#[no_mangle]
pub extern "C" fn msg_accept_channel_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::AcceptChannel, data);
test_msg_simple!(msgs::AcceptChannel, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_announcement_signatures.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_announcement_signatures_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::AnnouncementSignatures, data);
test_msg_simple!(msgs::AnnouncementSignatures, data);
}

#[no_mangle]
pub extern "C" fn msg_announcement_signatures_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::AnnouncementSignatures, data);
test_msg_simple!(msgs::AnnouncementSignatures, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_commitment_signed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_commitment_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::CommitmentSigned, data);
test_msg_simple!(msgs::CommitmentSigned, data);
}

#[no_mangle]
pub extern "C" fn msg_commitment_signed_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::CommitmentSigned, data);
test_msg_simple!(msgs::CommitmentSigned, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_funding_created.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_funding_created_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::FundingCreated, data);
test_msg_simple!(msgs::FundingCreated, data);
}

#[no_mangle]
pub extern "C" fn msg_funding_created_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::FundingCreated, data);
test_msg_simple!(msgs::FundingCreated, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_funding_locked.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_funding_locked_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::FundingLocked, data);
test_msg_simple!(msgs::FundingLocked, data);
}

#[no_mangle]
pub extern "C" fn msg_funding_locked_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::FundingLocked, data);
test_msg_simple!(msgs::FundingLocked, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_funding_signed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_funding_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::FundingSigned, data);
test_msg_simple!(msgs::FundingSigned, data);
}

#[no_mangle]
pub extern "C" fn msg_funding_signed_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::FundingSigned, data);
test_msg_simple!(msgs::FundingSigned, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_gossip_timestamp_filter_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::GossipTimestampFilter, data);
test_msg_simple!(msgs::GossipTimestampFilter, data);
}

#[no_mangle]
pub extern "C" fn msg_gossip_timestamp_filter_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::GossipTimestampFilter, data);
test_msg_simple!(msgs::GossipTimestampFilter, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_open_channel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_open_channel_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::OpenChannel, data);
test_msg_simple!(msgs::OpenChannel, data);
}

#[no_mangle]
pub extern "C" fn msg_open_channel_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::OpenChannel, data);
test_msg_simple!(msgs::OpenChannel, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_query_channel_range.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_query_channel_range_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::QueryChannelRange, data);
test_msg_simple!(msgs::QueryChannelRange, data);
}

#[no_mangle]
pub extern "C" fn msg_query_channel_range_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::QueryChannelRange, data);
test_msg_simple!(msgs::QueryChannelRange, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_reply_short_channel_ids_end_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::ReplyShortChannelIdsEnd, data);
test_msg_simple!(msgs::ReplyShortChannelIdsEnd, data);
}

#[no_mangle]
pub extern "C" fn msg_reply_short_channel_ids_end_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::ReplyShortChannelIdsEnd, data);
test_msg_simple!(msgs::ReplyShortChannelIdsEnd, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_revoke_and_ack.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_revoke_and_ack_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::RevokeAndACK, data);
test_msg_simple!(msgs::RevokeAndACK, data);
}

#[no_mangle]
pub extern "C" fn msg_revoke_and_ack_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::RevokeAndACK, data);
test_msg_simple!(msgs::RevokeAndACK, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_shutdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_shutdown_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::Shutdown, data);
test_msg_simple!(msgs::Shutdown, data);
}

#[no_mangle]
pub extern "C" fn msg_shutdown_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::Shutdown, data);
test_msg_simple!(msgs::Shutdown, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_update_add_htlc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_update_add_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg_hole!(msgs::UpdateAddHTLC, data, 85, 33);
test_msg_simple!(msgs::UpdateAddHTLC, data);
}

#[no_mangle]
pub extern "C" fn msg_update_add_htlc_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg_hole!(msgs::UpdateAddHTLC, data, 85, 33);
test_msg_simple!(msgs::UpdateAddHTLC, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_update_fail_htlc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_update_fail_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::UpdateFailHTLC, data);
test_msg_simple!(msgs::UpdateFailHTLC, data);
}

#[no_mangle]
pub extern "C" fn msg_update_fail_htlc_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::UpdateFailHTLC, data);
test_msg_simple!(msgs::UpdateFailHTLC, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_update_fail_malformed_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::UpdateFailMalformedHTLC, data);
test_msg_simple!(msgs::UpdateFailMalformedHTLC, data);
}

#[no_mangle]
pub extern "C" fn msg_update_fail_malformed_htlc_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::UpdateFailMalformedHTLC, data);
test_msg_simple!(msgs::UpdateFailMalformedHTLC, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_update_fee.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_update_fee_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::UpdateFee, data);
test_msg_simple!(msgs::UpdateFee, data);
}

#[no_mangle]
pub extern "C" fn msg_update_fee_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::UpdateFee, data);
test_msg_simple!(msgs::UpdateFee, data);
}
4 changes: 2 additions & 2 deletions fuzz/src/msg_targets/msg_update_fulfill_htlc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ use utils::test_logger;

#[inline]
pub fn msg_update_fulfill_htlc_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
test_msg!(msgs::UpdateFulfillHTLC, data);
test_msg_simple!(msgs::UpdateFulfillHTLC, data);
}

#[no_mangle]
pub extern "C" fn msg_update_fulfill_htlc_run(data: *const u8, datalen: usize) {
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
test_msg!(msgs::UpdateFulfillHTLC, data);
test_msg_simple!(msgs::UpdateFulfillHTLC, data);
}
Loading