Skip to content

Commit 425e4ad

Browse files
authored
Merge pull request #454 from TheBlueMatt/2020-01-fuzz-mega-value
Panic on txn with value > 21mill in ChannelMonitor::block_connected, Clean up fuzz targets a bit
2 parents 8ee626c + 04215c4 commit 425e4ad

File tree

63 files changed

+542
-308
lines changed

Some content is hidden

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

63 files changed

+542
-308
lines changed

fuzz/src/bin/chanmon_consistency_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::chanmon_consistency::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
chanmon_consistency_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
chanmon_consistency_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/chanmon_consistency") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
chanmon_consistency_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/chanmon_deser_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::chanmon_deser::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
chanmon_deser_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
chanmon_deser_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/chanmon_deser") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
chanmon_deser_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/full_stack_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::full_stack::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
full_stack_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
full_stack_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/full_stack") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
full_stack_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_accept_channel_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_accept_channel::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_accept_channel_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_accept_channel_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_accept_channel") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_accept_channel_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_announcement_signatures_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_announcement_signatures::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_announcement_signatures_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_announcement_signatures_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_announcement_signatures") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_announcement_signatures_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_channel_announcement_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_channel_announcement::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_channel_announcement_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_channel_announcement_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_channel_announcement") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_channel_announcement_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_channel_reestablish_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_channel_reestablish::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_channel_reestablish_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_channel_reestablish_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_channel_reestablish") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_channel_reestablish_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_channel_update_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_channel_update::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_channel_update_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_channel_update_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_channel_update") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_channel_update_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_closing_signed_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_closing_signed::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_closing_signed_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_closing_signed_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_closing_signed") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_closing_signed_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_commitment_signed_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_commitment_signed::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_commitment_signed_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_commitment_signed_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_commitment_signed") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_commitment_signed_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

fuzz/src/bin/msg_decoded_onion_error_packet_target.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// This file is auto-generated by gen_target.sh based on target_template.txt
22
// To modify it, modify target_template.txt and run gen_target.sh instead.
33

4-
//Uncomment this for libfuzzer builds:
5-
//#![no_main]
4+
#![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
65

76
extern crate lightning_fuzz;
87
use lightning_fuzz::msg_targets::msg_decoded_onion_error_packet::*;
98

9+
use std::fs;
1010
use std::io::Read;
1111

1212
#[cfg(feature = "afl")]
@@ -42,3 +42,18 @@ fn main() {
4242
std::io::stdin().read_to_end(&mut data).unwrap();
4343
msg_decoded_onion_error_packet_run(data.as_ptr(), data.len());
4444
}
45+
46+
#[test]
47+
fn run_test_cases() {
48+
let mut data: Vec<u8> = vec![0];
49+
msg_decoded_onion_error_packet_run(data.as_ptr(), data.len());
50+
if let Ok(tests) = fs::read_dir("test_cases/msg_decoded_onion_error_packet") {
51+
for test in tests {
52+
data.clear();
53+
let path = test.unwrap().path();
54+
println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55+
fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56+
msg_decoded_onion_error_packet_run(data.as_ptr(), data.len());
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)