Skip to content

Commit 7aa06d2

Browse files
committed
[fuzz] Add fst coverage for ChannelManager::update_channel_config
1 parent e63fc65 commit 7aa06d2

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

fuzz/src/full_stack.rs

+21-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ use lightning::onion_message::messenger::{Destination, MessageRouter, OnionMessa
4848
use lightning::routing::gossip::{P2PGossipSync, NetworkGraph};
4949
use lightning::routing::utxo::UtxoLookup;
5050
use lightning::routing::router::{InFlightHtlcs, PaymentParameters, Route, RouteParameters, Router};
51-
use lightning::util::config::UserConfig;
51+
use lightning::util::config::{ChannelConfig, UserConfig};
5252
use lightning::util::errors::APIError;
5353
use lightning::util::test_channel_signer::{TestChannelSigner, EnforcementState};
5454
use lightning::util::logger::Logger;
@@ -104,6 +104,16 @@ impl InputData {
104104
Some(&self.data[old_pos..old_pos + len])
105105
}
106106
}
107+
impl std::io::Read for &InputData {
108+
fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
109+
if let Some(sl) = self.get_slice(buf.len()) {
110+
buf.copy_from_slice(sl);
111+
Ok(buf.len())
112+
} else {
113+
Ok(0)
114+
}
115+
}
116+
}
107117

108118
struct FuzzEstimator {
109119
input: Arc<InputData>,
@@ -758,6 +768,16 @@ pub fn do_test(mut data: &[u8], logger: &Arc<dyn Logger>) {
758768
}
759769
}
760770
}
771+
35 => {
772+
let config: ChannelConfig =
773+
if let Ok(c) = Readable::read(&mut &*input) { c } else { return; };
774+
let chans = channelmanager.list_channels();
775+
if let Some(chan) = chans.get(0) {
776+
let _ = channelmanager.update_channel_config(
777+
&chan.counterparty.node_id, &[chan.channel_id], &config
778+
);
779+
}
780+
}
761781
_ => return,
762782
}
763783
loss_detector.handler.process_events();

0 commit comments

Comments
 (0)