Skip to content

Commit 06c11bb

Browse files
committed
Fix unchecked addition.
1 parent 88bd5cc commit 06c11bb

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lightning/src/ln/onion_utils.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -555,14 +555,15 @@ pub(super) fn construct_trampoline_onion_packet(
555555
payloads: Vec<msgs::OutboundTrampolinePayload>, onion_keys: Vec<OnionKeys>,
556556
prng_seed: [u8; 32], associated_data: &PaymentHash, length: Option<u16>,
557557
) -> Result<msgs::TrampolineOnionPacket, ()> {
558-
let minimum_packet_length: usize = payloads
558+
let minimum_packet_length = payloads
559559
.iter()
560560
.map(|p| {
561561
let mut payload_len = LengthCalculatingWriter(0);
562562
p.write(&mut payload_len).expect("Failed to calculate length");
563-
payload_len.0 + 32
563+
payload_len.0.checked_add(32).expect("Excessive payload size")
564564
})
565-
.sum();
565+
.try_fold(0usize, |a, b| a.checked_add(b))
566+
.expect("Excessive onion length");
566567

567568
assert!(
568569
minimum_packet_length < ONION_DATA_LEN,

0 commit comments

Comments
 (0)