X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=fuzz%2Ffuzz_targets%2Fmsg_targets%2Fmsg_update_fail_malformed_htlc_target.rs;fp=fuzz%2Ffuzz_targets%2Fmsg_targets%2Fmsg_update_fail_malformed_htlc_target.rs;h=bf64a1ee84acceddf87bccaacc0f1dc64b10d6da;hb=913ea887fea16be5f272ff8467a0458c086e7ff1;hp=0000000000000000000000000000000000000000;hpb=e2ff3393ea7b95432a0e13f69f423028682e15bb;p=rust-lightning diff --git a/fuzz/fuzz_targets/msg_targets/msg_update_fail_malformed_htlc_target.rs b/fuzz/fuzz_targets/msg_targets/msg_update_fail_malformed_htlc_target.rs new file mode 100644 index 00000000..bf64a1ee --- /dev/null +++ b/fuzz/fuzz_targets/msg_targets/msg_update_fail_malformed_htlc_target.rs @@ -0,0 +1,49 @@ +extern crate lightning; + +use lightning::ln::msgs; +use lightning::util::reset_rng_state; + +use lightning::ln::msgs::{MsgEncodable, MsgDecodable}; + +mod utils; +use utils::slice_to_be16; + +#[inline] +pub fn do_test(data: &[u8]) { + reset_rng_state(); + let mut read_pos = 0; + loop { + test_msg!(msgs::UpdateFailMalformedHTLC, data, read_pos); + } +} + +#[cfg(feature = "afl")] +extern crate afl; +#[cfg(feature = "afl")] +fn main() { + afl::read_stdio_bytes(|data| { + do_test(&data); + }); +} + +#[cfg(feature = "honggfuzz")] +#[macro_use] extern crate honggfuzz; +#[cfg(feature = "honggfuzz")] +fn main() { + loop { + fuzz!(|data| { + do_test(data); + }); + } +} + +#[cfg(test)] +mod tests { + use utils::extend_vec_from_hex; + #[test] + fn duplicate_crash() { + let mut a = Vec::new(); + extend_vec_from_hex("00", &mut a); + super::do_test(&a); + } +}