Merge pull request #454 from TheBlueMatt/2020-01-fuzz-mega-value
[rust-lightning] / fuzz / src / full_stack.rs
index 36e6d73186773d8afd24920cdd3582aa379353c5..568f8085131d259282cb164fbb6c7cb0fc882d06 100644 (file)
@@ -491,6 +491,12 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
                                } else {
                                        let txres: Result<Transaction, _> = deserialize(get_slice!(txlen));
                                        if let Ok(tx) = txres {
+                                               let mut output_val = 0;
+                                               for out in tx.output.iter() {
+                                                       if out.value > 21_000_000_0000_0000 { return; }
+                                                       output_val += out.value;
+                                                       if output_val > 21_000_000_0000_0000 { return; }
+                                               }
                                                loss_detector.connect_block(&[tx]);
                                        } else {
                                                return;
@@ -546,12 +552,6 @@ mod tests {
        use std::collections::HashMap;
        use std::sync::{Arc, Mutex};
 
-       #[test]
-       fn duplicate_crash() {
-               let logger: Arc<dyn Logger> = Arc::new(test_logger::TestLogger::new("".to_owned()));
-               super::do_test(&::hex::decode("00").unwrap(), &logger);
-       }
-
        struct TrackingLogger {
                /// (module, message) -> count
                pub lines: Mutex<HashMap<(String, String), usize>>,