Merge pull request #290 from TheBlueMatt/2019-01-monitor-update-handle-fuzz
[rust-lightning] / fuzz / fuzz_targets / full_stack_target.rs
index 067c73d217e2517c4e2f43c03aaad92895d898d7..a4697fd939df6741fe4241636c5611e4ecee36c6 100644 (file)
@@ -281,6 +281,29 @@ impl KeysInterface for KeyProvider {
                fill_bytes(&mut session_key);
                SecretKey::from_slice(&session_key).unwrap()
        }
+
+       fn get_channel_id(&self) -> [u8; 32] {
+               let mut channel_id = [0; 32];
+               fill_bytes(&mut channel_id);
+               for i in 0..4 {
+                       // byteswap the u64s in channel_id to make it distinct from get_session_key (and match
+                       // old code that wrote out different endianness).
+                       let mut t;
+                       t = channel_id[i*8 + 0];
+                       channel_id[i*8 + 0] = channel_id[i*8 + 7];
+                       channel_id[i*8 + 7] = t;
+                       t = channel_id[i*8 + 1];
+                       channel_id[i*8 + 1] = channel_id[i*8 + 6];
+                       channel_id[i*8 + 6] = t;
+                       t = channel_id[i*8 + 2];
+                       channel_id[i*8 + 2] = channel_id[i*8 + 5];
+                       channel_id[i*8 + 5] = t;
+                       t = channel_id[i*8 + 3];
+                       channel_id[i*8 + 3] = channel_id[i*8 + 4];
+                       channel_id[i*8 + 4] = t;
+               }
+               channel_id
+       }
 }
 
 #[inline]
@@ -531,7 +554,7 @@ pub fn do_test(data: &[u8], logger: &Arc<Logger>) {
 #[cfg(feature = "afl")]
 fn main() {
        fuzz!(|data| {
-               let logger: Arc<Logger> = Arc::new(test_logger::TestLogger{});
+               let logger: Arc<Logger> = Arc::new(test_logger::TestLogger::new("".to_owned()));
                do_test(data, &logger);
        });
 }
@@ -542,7 +565,7 @@ fn main() {
 fn main() {
        loop {
                fuzz!(|data| {
-                       let logger: Arc<Logger> = Arc::new(test_logger::TestLogger{});
+                       let logger: Arc<Logger> = Arc::new(test_logger::TestLogger::new("".to_owned()));
                        do_test(data, &logger);
                });
        }
@@ -552,7 +575,7 @@ fn main() {
 #[macro_use] extern crate libfuzzer_sys;
 #[cfg(feature = "libfuzzer_fuzz")]
 fuzz_target!(|data: &[u8]| {
-       let logger: Arc<Logger> = Arc::new(test_logger::TestLogger{});
+       let logger: Arc<Logger> = Arc::new(test_logger::TestLogger::new("".to_owned()));
        do_test(data, &logger);
 });
 
@@ -566,7 +589,7 @@ mod tests {
 
        #[test]
        fn duplicate_crash() {
-               let logger: Arc<Logger> = Arc::new(test_logger::TestLogger{});
+               let logger: Arc<Logger> = Arc::new(test_logger::TestLogger::new("".to_owned()));
                super::do_test(&::hex::decode("00").unwrap(), &logger);
        }