Skip to content

Commit e403999

Browse files
authored
Merge pull request #1588 from TheBlueMatt/2022-06-ffs-dumb-ser
Do not execute the default_value expr until we need it in TLV deser
2 parents a3f181a + f1b9bd3 commit e403999

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+143
-170
lines changed

fuzz/src/bin/gen_target.sh

+2
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,5 @@ GEN_TEST msg_channel_update msg_targets::
4747
GEN_TEST msg_onion_hop_data msg_targets::
4848
GEN_TEST msg_ping msg_targets::
4949
GEN_TEST msg_pong msg_targets::
50+
51+
GEN_TEST msg_channel_details msg_targets::

fuzz/src/msg_targets/gen_target.sh

+37-35
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
GEN_TEST() {
4-
tn=msg_$(echo $1 | sed 's/\([a-z0-9]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]')
4+
tn=msg_$(echo $1 | sed s'/.*:://g' | sed 's/\([a-z0-9]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]')
55
fn=${tn}.rs
66
cat msg_target_template.txt | sed s/MSG_TARGET/$1/ | sed "s/TARGET_NAME/$tn/" | sed "s/TEST_MSG/$2/" | sed "s/EXTRA_ARGS/$3/" > $fn
77
echo "pub mod $tn;" >> mod.rs
@@ -11,37 +11,39 @@ echo "mod utils;" > mod.rs
1111

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

14-
GEN_TEST AcceptChannel test_msg_simple ""
15-
GEN_TEST AnnouncementSignatures test_msg_simple ""
16-
GEN_TEST ClosingSigned test_msg_simple ""
17-
GEN_TEST CommitmentSigned test_msg_simple ""
18-
GEN_TEST FundingCreated test_msg_simple ""
19-
GEN_TEST ChannelReady test_msg_simple ""
20-
GEN_TEST FundingSigned test_msg_simple ""
21-
GEN_TEST GossipTimestampFilter test_msg_simple ""
22-
GEN_TEST Init test_msg_simple ""
23-
GEN_TEST OnionHopData test_msg_simple ""
24-
GEN_TEST OpenChannel test_msg_simple ""
25-
GEN_TEST Ping test_msg_simple ""
26-
GEN_TEST Pong test_msg_simple ""
27-
GEN_TEST QueryChannelRange test_msg_simple ""
28-
GEN_TEST ReplyShortChannelIdsEnd test_msg_simple ""
29-
GEN_TEST RevokeAndACK test_msg_simple ""
30-
GEN_TEST Shutdown test_msg_simple ""
31-
GEN_TEST UpdateAddHTLC test_msg_simple ""
32-
GEN_TEST UpdateFailHTLC test_msg_simple ""
33-
GEN_TEST UpdateFailMalformedHTLC test_msg_simple ""
34-
GEN_TEST UpdateFee test_msg_simple ""
35-
GEN_TEST UpdateFulfillHTLC test_msg_simple ""
36-
37-
GEN_TEST ChannelReestablish test_msg ""
38-
GEN_TEST DecodedOnionErrorPacket test_msg ""
39-
40-
GEN_TEST ChannelAnnouncement test_msg_exact ""
41-
GEN_TEST NodeAnnouncement test_msg_exact ""
42-
GEN_TEST QueryShortChannelIds test_msg ""
43-
GEN_TEST ReplyChannelRange test_msg ""
44-
45-
GEN_TEST ErrorMessage test_msg_hole ", 32, 2"
46-
GEN_TEST WarningMessage test_msg_hole ", 32, 2"
47-
GEN_TEST ChannelUpdate test_msg_hole ", 108, 1"
14+
GEN_TEST lightning::ln::msgs::AcceptChannel test_msg_simple ""
15+
GEN_TEST lightning::ln::msgs::AnnouncementSignatures test_msg_simple ""
16+
GEN_TEST lightning::ln::msgs::ClosingSigned test_msg_simple ""
17+
GEN_TEST lightning::ln::msgs::CommitmentSigned test_msg_simple ""
18+
GEN_TEST lightning::ln::msgs::FundingCreated test_msg_simple ""
19+
GEN_TEST lightning::ln::msgs::ChannelReady test_msg_simple ""
20+
GEN_TEST lightning::ln::msgs::FundingSigned test_msg_simple ""
21+
GEN_TEST lightning::ln::msgs::GossipTimestampFilter test_msg_simple ""
22+
GEN_TEST lightning::ln::msgs::Init test_msg_simple ""
23+
GEN_TEST lightning::ln::msgs::OnionHopData test_msg_simple ""
24+
GEN_TEST lightning::ln::msgs::OpenChannel test_msg_simple ""
25+
GEN_TEST lightning::ln::msgs::Ping test_msg_simple ""
26+
GEN_TEST lightning::ln::msgs::Pong test_msg_simple ""
27+
GEN_TEST lightning::ln::msgs::QueryChannelRange test_msg_simple ""
28+
GEN_TEST lightning::ln::msgs::ReplyShortChannelIdsEnd test_msg_simple ""
29+
GEN_TEST lightning::ln::msgs::RevokeAndACK test_msg_simple ""
30+
GEN_TEST lightning::ln::msgs::Shutdown test_msg_simple ""
31+
GEN_TEST lightning::ln::msgs::UpdateAddHTLC test_msg_simple ""
32+
GEN_TEST lightning::ln::msgs::UpdateFailHTLC test_msg_simple ""
33+
GEN_TEST lightning::ln::msgs::UpdateFailMalformedHTLC test_msg_simple ""
34+
GEN_TEST lightning::ln::msgs::UpdateFee test_msg_simple ""
35+
GEN_TEST lightning::ln::msgs::UpdateFulfillHTLC test_msg_simple ""
36+
37+
GEN_TEST lightning::ln::msgs::ChannelReestablish test_msg ""
38+
GEN_TEST lightning::ln::msgs::DecodedOnionErrorPacket test_msg ""
39+
40+
GEN_TEST lightning::ln::msgs::ChannelAnnouncement test_msg_exact ""
41+
GEN_TEST lightning::ln::msgs::NodeAnnouncement test_msg_exact ""
42+
GEN_TEST lightning::ln::msgs::QueryShortChannelIds test_msg ""
43+
GEN_TEST lightning::ln::msgs::ReplyChannelRange test_msg ""
44+
45+
GEN_TEST lightning::ln::msgs::ErrorMessage test_msg_hole ", 32, 2"
46+
GEN_TEST lightning::ln::msgs::WarningMessage test_msg_hole ", 32, 2"
47+
GEN_TEST lightning::ln::msgs::ChannelUpdate test_msg_hole ", 108, 1"
48+
49+
GEN_TEST lightning::ln::channelmanager::ChannelDetails test_msg_simple ""

fuzz/src/msg_targets/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ pub mod msg_reply_channel_range;
3030
pub mod msg_error_message;
3131
pub mod msg_warning_message;
3232
pub mod msg_channel_update;
33+
pub mod msg_channel_details;

fuzz/src/msg_targets/msg_accept_channel.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_accept_channel_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::AcceptChannel, data);
18+
test_msg_simple!(lightning::ln::msgs::AcceptChannel, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_accept_channel_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::AcceptChannel, data);
24+
test_msg_simple!(lightning::ln::msgs::AcceptChannel, data);
2725
}

fuzz/src/msg_targets/msg_announcement_signatures.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_announcement_signatures_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::AnnouncementSignatures, data);
18+
test_msg_simple!(lightning::ln::msgs::AnnouncementSignatures, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_announcement_signatures_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::AnnouncementSignatures, data);
24+
test_msg_simple!(lightning::ln::msgs::AnnouncementSignatures, data);
2725
}

fuzz/src/msg_targets/msg_channel_announcement.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_channel_announcement_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_exact!(msgs::ChannelAnnouncement, data);
18+
test_msg_exact!(lightning::ln::msgs::ChannelAnnouncement, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_channel_announcement_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_exact!(msgs::ChannelAnnouncement, data);
24+
test_msg_exact!(lightning::ln::msgs::ChannelAnnouncement, data);
2725
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// This file is Copyright its original authors, visible in version control
2+
// history.
3+
//
4+
// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE
5+
// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
7+
// You may not use this file except in accordance with one or both of these
8+
// licenses.
9+
10+
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
11+
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
12+
13+
use msg_targets::utils::VecWriter;
14+
use utils::test_logger;
15+
16+
#[inline]
17+
pub fn msg_channel_details_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
18+
test_msg_simple!(lightning::ln::channelmanager::ChannelDetails, data);
19+
}
20+
21+
#[no_mangle]
22+
pub extern "C" fn msg_channel_details_run(data: *const u8, datalen: usize) {
23+
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
24+
test_msg_simple!(lightning::ln::channelmanager::ChannelDetails, data);
25+
}

fuzz/src/msg_targets/msg_channel_ready.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_channel_ready_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::ChannelReady, data);
18+
test_msg_simple!(lightning::ln::msgs::ChannelReady, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_channel_ready_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::ChannelReady, data);
24+
test_msg_simple!(lightning::ln::msgs::ChannelReady, data);
2725
}

fuzz/src/msg_targets/msg_channel_reestablish.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_channel_reestablish_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg!(msgs::ChannelReestablish, data);
18+
test_msg!(lightning::ln::msgs::ChannelReestablish, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_channel_reestablish_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg!(msgs::ChannelReestablish, data);
24+
test_msg!(lightning::ln::msgs::ChannelReestablish, data);
2725
}

fuzz/src/msg_targets/msg_channel_update.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_channel_update_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_hole!(msgs::ChannelUpdate, data, 108, 1);
18+
test_msg_hole!(lightning::ln::msgs::ChannelUpdate, data, 108, 1);
2119
}
2220

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

fuzz/src/msg_targets/msg_closing_signed.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_closing_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::ClosingSigned, data);
18+
test_msg_simple!(lightning::ln::msgs::ClosingSigned, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_closing_signed_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::ClosingSigned, data);
24+
test_msg_simple!(lightning::ln::msgs::ClosingSigned, data);
2725
}

fuzz/src/msg_targets/msg_commitment_signed.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_commitment_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::CommitmentSigned, data);
18+
test_msg_simple!(lightning::ln::msgs::CommitmentSigned, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_commitment_signed_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::CommitmentSigned, data);
24+
test_msg_simple!(lightning::ln::msgs::CommitmentSigned, data);
2725
}

fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_decoded_onion_error_packet_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg!(msgs::DecodedOnionErrorPacket, data);
18+
test_msg!(lightning::ln::msgs::DecodedOnionErrorPacket, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_decoded_onion_error_packet_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg!(msgs::DecodedOnionErrorPacket, data);
24+
test_msg!(lightning::ln::msgs::DecodedOnionErrorPacket, data);
2725
}

fuzz/src/msg_targets/msg_error_message.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_error_message_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_hole!(msgs::ErrorMessage, data, 32, 2);
18+
test_msg_hole!(lightning::ln::msgs::ErrorMessage, data, 32, 2);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_error_message_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_hole!(msgs::ErrorMessage, data, 32, 2);
24+
test_msg_hole!(lightning::ln::msgs::ErrorMessage, data, 32, 2);
2725
}

fuzz/src/msg_targets/msg_funding_created.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_funding_created_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::FundingCreated, data);
18+
test_msg_simple!(lightning::ln::msgs::FundingCreated, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_funding_created_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::FundingCreated, data);
24+
test_msg_simple!(lightning::ln::msgs::FundingCreated, data);
2725
}

fuzz/src/msg_targets/msg_funding_signed.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_funding_signed_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::FundingSigned, data);
18+
test_msg_simple!(lightning::ln::msgs::FundingSigned, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_funding_signed_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::FundingSigned, data);
24+
test_msg_simple!(lightning::ln::msgs::FundingSigned, data);
2725
}

fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,16 @@
1010
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
1111
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
1212

13-
use lightning::ln::msgs;
14-
1513
use msg_targets::utils::VecWriter;
1614
use utils::test_logger;
1715

1816
#[inline]
1917
pub fn msg_gossip_timestamp_filter_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
20-
test_msg_simple!(msgs::GossipTimestampFilter, data);
18+
test_msg_simple!(lightning::ln::msgs::GossipTimestampFilter, data);
2119
}
2220

2321
#[no_mangle]
2422
pub extern "C" fn msg_gossip_timestamp_filter_run(data: *const u8, datalen: usize) {
2523
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
26-
test_msg_simple!(msgs::GossipTimestampFilter, data);
24+
test_msg_simple!(lightning::ln::msgs::GossipTimestampFilter, data);
2725
}

0 commit comments

Comments
 (0)