Skip to content

Commit 9f59b33

Browse files
committed
fuzz: gate splice opcodes on cfg(splicing)
Keep the splice opcodes in chanmon_consistency available only when the crate is built with cfg(splicing). When splicing is disabled, return early from those opcode handlers instead of calling splice helpers that are not compiled in. Add cfg(splicing) to fuzz/Cargo.toml check-cfg so the guarded code builds cleanly in the fuzz crate. AI tools were used in preparing this commit.
1 parent 3029bf4 commit 9f59b33

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

fuzz/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,5 @@ check-cfg = [
6262
"cfg(fuzzing)",
6363
"cfg(secp256k1_fuzz)",
6464
"cfg(hashes_fuzz)",
65+
"cfg(splicing)",
6566
]

fuzz/src/chanmon_consistency.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,7 +1333,9 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
13331333
let (node_c, mut monitor_c, keys_manager_c, logger_c) = make_node!(2, fee_est_c, broadcast_c);
13341334

13351335
let mut nodes = [node_a, node_b, node_c];
1336+
#[allow(unused_variables)]
13361337
let loggers = [logger_a, logger_b, logger_c];
1338+
#[allow(unused_variables)]
13371339
let fee_estimators = [Arc::clone(&fee_est_a), Arc::clone(&fee_est_b), Arc::clone(&fee_est_c)];
13381340

13391341
// Connect peers first, then create channels
@@ -2426,52 +2428,76 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
24262428
},
24272429

24282430
0xa0 => {
2431+
if !cfg!(splicing) {
2432+
test_return!();
2433+
}
24292434
let cp_node_id = nodes[1].get_our_node_id();
24302435
let wallet = WalletSync::new(&wallets[0], Arc::clone(&loggers[0]));
24312436
let feerate_sat_per_kw = fee_estimators[0].feerate_sat_per_kw();
24322437
splice_in(&nodes[0], &cp_node_id, &chan_a_id, &wallet, feerate_sat_per_kw);
24332438
},
24342439
0xa1 => {
2440+
if !cfg!(splicing) {
2441+
test_return!();
2442+
}
24352443
let cp_node_id = nodes[0].get_our_node_id();
24362444
let wallet = WalletSync::new(&wallets[1], Arc::clone(&loggers[1]));
24372445
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24382446
splice_in(&nodes[1], &cp_node_id, &chan_a_id, &wallet, feerate_sat_per_kw);
24392447
},
24402448
0xa2 => {
2449+
if !cfg!(splicing) {
2450+
test_return!();
2451+
}
24412452
let cp_node_id = nodes[2].get_our_node_id();
24422453
let wallet = WalletSync::new(&wallets[1], Arc::clone(&loggers[1]));
24432454
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24442455
splice_in(&nodes[1], &cp_node_id, &chan_b_id, &wallet, feerate_sat_per_kw);
24452456
},
24462457
0xa3 => {
2458+
if !cfg!(splicing) {
2459+
test_return!();
2460+
}
24472461
let cp_node_id = nodes[1].get_our_node_id();
24482462
let wallet = WalletSync::new(&wallets[2], Arc::clone(&loggers[2]));
24492463
let feerate_sat_per_kw = fee_estimators[2].feerate_sat_per_kw();
24502464
splice_in(&nodes[2], &cp_node_id, &chan_b_id, &wallet, feerate_sat_per_kw);
24512465
},
24522466

24532467
0xa4 => {
2468+
if !cfg!(splicing) {
2469+
test_return!();
2470+
}
24542471
let cp_node_id = nodes[1].get_our_node_id();
24552472
let wallet = &wallets[0];
24562473
let logger = Arc::clone(&loggers[0]);
24572474
let feerate_sat_per_kw = fee_estimators[0].feerate_sat_per_kw();
24582475
splice_out(&nodes[0], &cp_node_id, &chan_a_id, wallet, logger, feerate_sat_per_kw);
24592476
},
24602477
0xa5 => {
2478+
if !cfg!(splicing) {
2479+
test_return!();
2480+
}
24612481
let cp_node_id = nodes[0].get_our_node_id();
24622482
let wallet = &wallets[1];
24632483
let logger = Arc::clone(&loggers[1]);
24642484
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24652485
splice_out(&nodes[1], &cp_node_id, &chan_a_id, wallet, logger, feerate_sat_per_kw);
24662486
},
24672487
0xa6 => {
2488+
if !cfg!(splicing) {
2489+
test_return!();
2490+
}
24682491
let cp_node_id = nodes[2].get_our_node_id();
24692492
let wallet = &wallets[1];
24702493
let logger = Arc::clone(&loggers[1]);
24712494
let feerate_sat_per_kw = fee_estimators[1].feerate_sat_per_kw();
24722495
splice_out(&nodes[1], &cp_node_id, &chan_b_id, wallet, logger, feerate_sat_per_kw);
24732496
},
24742497
0xa7 => {
2498+
if !cfg!(splicing) {
2499+
test_return!();
2500+
}
24752501
let cp_node_id = nodes[1].get_our_node_id();
24762502
let wallet = &wallets[2];
24772503
let logger = Arc::clone(&loggers[2]);

0 commit comments

Comments
 (0)