@@ -48,7 +48,7 @@ use lightning::onion_message::messenger::{Destination, MessageRouter, OnionMessa
4848use lightning:: routing:: gossip:: { P2PGossipSync , NetworkGraph } ;
4949use lightning:: routing:: utxo:: UtxoLookup ;
5050use lightning:: routing:: router:: { InFlightHtlcs , PaymentParameters , Route , RouteParameters , Router } ;
51- use lightning:: util:: config:: UserConfig ;
51+ use lightning:: util:: config:: { ChannelConfig , UserConfig } ;
5252use lightning:: util:: errors:: APIError ;
5353use lightning:: util:: test_channel_signer:: { TestChannelSigner , EnforcementState } ;
5454use 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
108118struct 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