Skip to content

Commit b4da6fb

Browse files
committed
Fix unchecked addition.
1 parent dc0c4c0 commit b4da6fb

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lightning/src/ln/onion_utils.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -420,14 +420,15 @@ pub(super) fn construct_trampoline_onion_packet(
420420
payloads: Vec<msgs::OutboundTrampolinePayload>, onion_keys: Vec<OnionKeys>,
421421
prng_seed: [u8; 32], associated_data: &PaymentHash, length: Option<u16>,
422422
) -> Result<msgs::TrampolineOnionPacket, ()> {
423-
let minimum_packet_length: usize = payloads
423+
let minimum_packet_length = payloads
424424
.iter()
425425
.map(|p| {
426426
let mut payload_len = LengthCalculatingWriter(0);
427427
p.write(&mut payload_len).expect("Failed to calculate length");
428-
payload_len.0 + 32
428+
payload_len.0.checked_add(32).expect("Excessive payload size")
429429
})
430-
.sum();
430+
.try_fold(0usize, |a, b| a.checked_add(b))
431+
.expect("Excessive onion length");
431432

432433
assert!(
433434
minimum_packet_length < ONION_DATA_LEN,

0 commit comments

Comments
 (0)