From 2358ca7789f151c7ccdac61e647043cba275c825 Mon Sep 17 00:00:00 2001 From: Atishyy27 Date: Fri, 20 Mar 2026 02:44:22 +0530 Subject: [PATCH] fuzz: Add upgrade/downgrade simulation to chanmon_consistency and fix chacha20 build --- fuzz/src/chanmon_consistency.rs | 16 +++++++++++++++- lightning/src/crypto/chacha20.rs | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/fuzz/src/chanmon_consistency.rs b/fuzz/src/chanmon_consistency.rs index 96104162db7..8871825d303 100644 --- a/fuzz/src/chanmon_consistency.rs +++ b/fuzz/src/chanmon_consistency.rs @@ -953,6 +953,15 @@ pub fn do_test( }}; } + let append_dummy_tlv = |ser: Vec, dummy_type: u64| -> Vec { + use lightning::util::ser::BigSize; + let mut writer = VecWriter(ser); + BigSize(dummy_type).write(&mut writer).unwrap(); + BigSize(4).write(&mut writer).unwrap(); + writer.0.extend_from_slice(&[0xde, 0xad, 0xbe, 0xef]); + writer.0 + }; + let reload_node = |ser: &Vec, node_id: u8, old_monitors: &TestChainMonitor, @@ -1034,8 +1043,13 @@ pub fn do_test( channel_monitors: monitor_refs, }; + let mut modified_ser = ser.clone(); + if use_old_mons % 2 == 0 { + modified_ser = append_dummy_tlv(modified_ser, 0xBADF00D1); + } + let manager = - <(BlockHash, ChanMan)>::read(&mut &ser[..], read_args).expect("Failed to read manager"); + <(BlockHash, ChanMan)>::read(&mut &modified_ser[..], read_args).expect("Failed to read manager"); let res = (manager.1, chain_monitor.clone()); for (channel_id, mon) in monitors.drain() { assert_eq!( diff --git a/lightning/src/crypto/chacha20.rs b/lightning/src/crypto/chacha20.rs index 67f9e93c480..ae4132a6194 100644 --- a/lightning/src/crypto/chacha20.rs +++ b/lightning/src/crypto/chacha20.rs @@ -334,6 +334,8 @@ mod fuzzy_chacha { } pub fn process_in_place(&mut self, _input_output: &mut [u8]) {} + + pub fn seek_to_block(&mut self, _block_offset: u32) {} } } #[cfg(fuzzing)]