Skip to content

Commit b2f31c5

Browse files
authored
Merge pull request #170 from TheBlueMatt/2018-09-119-rebased
#119 squashed
2 parents bde48b2 + 28a612f commit b2f31c5

35 files changed

+1036
-121
lines changed

fuzz/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ path = "fuzz_targets/chanmon_deser_target.rs"
5454
# message fuzz targets
5555
[[bin]]
5656
name = "msg_ping_target"
57-
path = "fuzz_targets/msg_ping_target.rs"
57+
path = "fuzz_targets/msg_targets/msg_ping_target.rs"
5858

5959
[[bin]]
6060
name = "msg_pong_target"
61-
path = "fuzz_targets/msg_pong_target.rs"
61+
path = "fuzz_targets/msg_targets/msg_pong_target.rs"
6262

6363
[[bin]]
6464
name = "msg_error_message_target"

fuzz/fuzz_targets/channel_target.rs

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ use bitcoin::network::serialize::{serialize, BitcoinHash};
1010
use lightning::ln::channel::{Channel, ChannelKeys};
1111
use lightning::ln::channelmanager::{HTLCFailReason, PendingHTLCStatus};
1212
use lightning::ln::msgs;
13-
use lightning::ln::msgs::{MsgDecodable, ErrorAction};
13+
use lightning::ln::msgs::{ErrorAction};
1414
use lightning::chain::chaininterface::{FeeEstimator, ConfirmationTarget};
1515
use lightning::chain::transaction::OutPoint;
1616
use lightning::util::reset_rng_state;
1717
use lightning::util::logger::Logger;
18+
use lightning::util::ser::{Readable, Reader};
1819

1920
mod utils;
2021

@@ -119,8 +120,9 @@ pub fn do_test(data: &[u8]) {
119120
}
120121

121122
macro_rules! decode_msg {
122-
($MsgType: path, $len: expr) => {
123-
match <($MsgType)>::decode(get_slice!($len)) {
123+
($MsgType: path, $len: expr) => {{
124+
let mut reader = Reader::new(::std::io::Cursor::new(get_slice!($len)));
125+
match <($MsgType)>::read(&mut reader) {
124126
Ok(msg) => msg,
125127
Err(e) => match e {
126128
msgs::DecodeError::UnknownRealmByte => return,
@@ -131,9 +133,11 @@ pub fn do_test(data: &[u8]) {
131133
msgs::DecodeError::ExtraAddressesPerType => return,
132134
msgs::DecodeError::BadLengthDescriptor => return,
133135
msgs::DecodeError::ShortRead => panic!("We picked the length..."),
136+
msgs::DecodeError::InvalidValue => panic!("Should not happen with p2p message decoding"),
137+
msgs::DecodeError::Io(e) => panic!(format!("{}", e)),
134138
}
135139
}
136-
}
140+
}}
137141
}
138142

139143
macro_rules! decode_msg_with_len16 {
@@ -143,19 +147,7 @@ pub fn do_test(data: &[u8]) {
143147
Some(slice) => slice,
144148
None => return,
145149
}[$begin_len..$begin_len + 2]);
146-
match <($MsgType)>::decode(get_slice!($begin_len as usize + 2 + (extra_len as usize)*$factor)) {
147-
Ok(msg) => msg,
148-
Err(e) => match e {
149-
msgs::DecodeError::UnknownRealmByte => return,
150-
msgs::DecodeError::UnknownRequiredFeature => return,
151-
msgs::DecodeError::BadPublicKey => return,
152-
msgs::DecodeError::BadSignature => return,
153-
msgs::DecodeError::BadText => return,
154-
msgs::DecodeError::ExtraAddressesPerType => return,
155-
msgs::DecodeError::BadLengthDescriptor => return,
156-
msgs::DecodeError::ShortRead => panic!("We picked the length..."),
157-
}
158-
}
150+
decode_msg!($MsgType, $begin_len as usize + 2 + (extra_len as usize)*$factor)
159151
}
160152
}
161153
}

fuzz/fuzz_targets/msg_targets/gen_target.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,6 @@ GEN_TEST NodeAnnouncement test_msg_exact ""
3131
GEN_TEST UpdateAddHTLC test_msg_hole ", 85, 33"
3232
GEN_TEST ErrorMessage test_msg_hole ", 32, 2"
3333
GEN_TEST OnionHopData test_msg_hole ", 1+8+8+4, 12"
34+
35+
GEN_TEST Ping test_msg_simple ""
36+
GEN_TEST Pong test_msg_simple ""

fuzz/fuzz_targets/msg_targets/msg_accept_channel_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

fuzz/fuzz_targets/msg_targets/msg_announcement_signatures_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

fuzz/fuzz_targets/msg_targets/msg_channel_announcement_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

fuzz/fuzz_targets/msg_targets/msg_channel_reestablish_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

fuzz/fuzz_targets/msg_targets/msg_channel_update_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

fuzz/fuzz_targets/msg_targets/msg_closing_signed_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

fuzz/fuzz_targets/msg_targets/msg_commitment_signed_target.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ extern crate lightning;
66
use lightning::ln::msgs;
77
use lightning::util::reset_rng_state;
88

9-
use lightning::ln::msgs::{MsgEncodable, MsgDecodable};
10-
119
mod utils;
1210

1311
#[inline]

0 commit comments

Comments
 (0)