Skip to content

Commit dd8cbf9

Browse files
committed
f: Use FixedLengthReader and WithoutLength
1 parent 9ee20b9 commit dd8cbf9

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

lightning/src/ln/msgs.rs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ use crate::sign::{NodeSigner, Recipient};
4141
#[allow(unused_imports)]
4242
use crate::prelude::*;
4343

44-
use core::cmp;
4544
use core::fmt;
4645
use core::fmt::Debug;
4746
use core::ops::Deref;
@@ -1859,23 +1858,15 @@ impl Writeable for TrampolineOnionPacket {
18591858

18601859
impl LengthReadable for TrampolineOnionPacket {
18611860
fn read<R: LengthRead>(r: &mut R) -> Result<Self, DecodeError> {
1862-
const READ_BUFFER_SIZE: usize = 4096;
1863-
18641861
let version = Readable::read(r)?;
18651862
let public_key = Readable::read(r)?;
18661863

1867-
let mut hop_data = Vec::new();
18681864
let hop_data_len = r.total_bytes().saturating_sub(66) as usize; // 1 (version) + 33 (pubkey) + 32 (HMAC) = 66
1869-
let mut read_idx = 0;
1870-
while read_idx < hop_data_len {
1871-
let mut read_buffer = [0; READ_BUFFER_SIZE];
1872-
let read_amt = cmp::min(hop_data_len - read_idx, READ_BUFFER_SIZE);
1873-
r.read_exact(&mut read_buffer[..read_amt])?;
1874-
hop_data.extend_from_slice(&read_buffer[..read_amt]);
1875-
read_idx += read_amt;
1876-
}
1865+
let mut rd = FixedLengthReader::new(r, hop_data_len as u64);
1866+
let hop_data = WithoutLength::<Vec<u8>>::read(&mut rd)?.0;
18771867

18781868
let hmac = Readable::read(r)?;
1869+
18791870
Ok(TrampolineOnionPacket {
18801871
version,
18811872
public_key,

0 commit comments

Comments
 (0)