Skip to content

writers/readers #62 based on io::Write/Read #119

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

Closed
wants to merge 12 commits into from
Closed
4 changes: 2 additions & 2 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ path = "fuzz_targets/chanmon_deser_target.rs"
# message fuzz targets
[[bin]]
name = "msg_ping_target"
path = "fuzz_targets/msg_ping_target.rs"
path = "fuzz_targets/msg_targets/msg_ping_target.rs"

[[bin]]
name = "msg_pong_target"
path = "fuzz_targets/msg_pong_target.rs"
path = "fuzz_targets/msg_targets/msg_pong_target.rs"

[[bin]]
name = "msg_error_message_target"
Expand Down
26 changes: 9 additions & 17 deletions fuzz/fuzz_targets/channel_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ use bitcoin::network::serialize::{serialize, BitcoinHash};
use lightning::ln::channel::{Channel, ChannelKeys};
use lightning::ln::channelmanager::{HTLCFailReason, PendingHTLCStatus};
use lightning::ln::msgs;
use lightning::ln::msgs::{MsgDecodable, ErrorAction};
use lightning::ln::msgs::{ErrorAction};
use lightning::chain::chaininterface::{FeeEstimator, ConfirmationTarget};
use lightning::chain::transaction::OutPoint;
use lightning::util::reset_rng_state;
use lightning::util::logger::Logger;
use lightning::util::ser::{Readable, Reader};

mod utils;

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

macro_rules! decode_msg {
($MsgType: path, $len: expr) => {
match <($MsgType)>::decode(get_slice!($len)) {
($MsgType: path, $len: expr) => {{
let mut reader = Reader::new(::std::io::Cursor::new(get_slice!($len)));
match <($MsgType)>::read(&mut reader) {
Ok(msg) => msg,
Err(e) => match e {
msgs::DecodeError::UnknownRealmByte => return,
Expand All @@ -131,9 +133,11 @@ pub fn do_test(data: &[u8]) {
msgs::DecodeError::ExtraAddressesPerType => return,
msgs::DecodeError::BadLengthDescriptor => return,
msgs::DecodeError::ShortRead => panic!("We picked the length..."),
msgs::DecodeError::InvalidValue => panic!("Should not happen with p2p message decoding"),
msgs::DecodeError::Io(e) => panic!(format!("{}", e)),
}
}
}
}}
}

macro_rules! decode_msg_with_len16 {
Expand All @@ -143,19 +147,7 @@ pub fn do_test(data: &[u8]) {
Some(slice) => slice,
None => return,
}[$begin_len..$begin_len + 2]);
match <($MsgType)>::decode(get_slice!($begin_len as usize + 2 + (extra_len as usize)*$factor)) {
Ok(msg) => msg,
Err(e) => match e {
msgs::DecodeError::UnknownRealmByte => return,
msgs::DecodeError::UnknownRequiredFeature => return,
msgs::DecodeError::BadPublicKey => return,
msgs::DecodeError::BadSignature => return,
msgs::DecodeError::BadText => return,
msgs::DecodeError::ExtraAddressesPerType => return,
msgs::DecodeError::BadLengthDescriptor => return,
msgs::DecodeError::ShortRead => panic!("We picked the length..."),
}
}
decode_msg!($MsgType, $begin_len as usize + 2 + (extra_len as usize)*$factor)
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions fuzz/fuzz_targets/msg_targets/gen_target.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@ GEN_TEST NodeAnnouncement test_msg_exact ""
GEN_TEST UpdateAddHTLC test_msg_hole ", 85, 33"
GEN_TEST ErrorMessage test_msg_hole ", 32, 2"
GEN_TEST OnionHopData test_msg_hole ", 1+8+8+4, 12"

GEN_TEST Ping test_msg_simple ""
GEN_TEST Pong test_msg_simple ""
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_accept_channel_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_channel_update_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_closing_signed_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_commitment_signed_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_error_message_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_funding_created_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_funding_locked_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_funding_signed_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_init_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_node_announcement_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_onion_hop_data_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_open_channel_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@

extern crate lightning;

use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable, Ping};
mod utils;

#[inline]
pub fn do_test(data: &[u8]) {
reset_rng_state();
if let Ok(msg) = Ping::decode(data) {
let _ = msg.encode();
}
test_msg_simple!(msgs::Ping, data);
}

#[cfg(feature = "afl")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@

extern crate lightning;

use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable, Pong};
mod utils;

#[inline]
pub fn do_test(data: &[u8]) {
reset_rng_state();
if let Ok(msg) = Pong::decode(data) {
let _ = msg.encode();
}
test_msg_simple!(msgs::Pong, data);
}

#[cfg(feature = "afl")]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_revoke_and_ack_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_shutdown_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_target_template.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_update_add_htlc_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_update_fail_htlc_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
2 changes: 0 additions & 2 deletions fuzz/fuzz_targets/msg_targets/msg_update_fee_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ extern crate lightning;
use lightning::ln::msgs;
use lightning::util::reset_rng_state;

use lightning::ln::msgs::{MsgEncodable, MsgDecodable};

mod utils;

#[inline]
Expand Down
Loading