Fix fuzzer-found underflow
authorValentine Wallace <vwallace@protonmail.com>
Fri, 5 Aug 2022 17:15:57 +0000 (13:15 -0400)
committerValentine Wallace <vwallace@protonmail.com>
Mon, 15 Aug 2022 16:46:39 +0000 (12:46 -0400)
lightning/src/onion_message/packet.rs

index a3414d844edff9cb96f5d6b15cf36e5807b29d9a..d4ba28c843b9dde23be1e41111bda0797e44128a 100644 (file)
@@ -69,7 +69,7 @@ impl LengthReadable for Packet {
                let public_key = Readable::read(r)?;
 
                let mut hop_data = Vec::new();
-               let hop_data_len = r.total_bytes() as usize - 66; // 1 (version) + 33 (pubkey) + 32 (HMAC) = 66
+               let hop_data_len = r.total_bytes().saturating_sub(66) as usize; // 1 (version) + 33 (pubkey) + 32 (HMAC) = 66
                let mut read_idx = 0;
                while read_idx < hop_data_len {
                        let mut read_buffer = [0; READ_BUFFER_SIZE];