From 63de3be9aa1ba35ead8e16cbb8eaa6d0c96af210 Mon Sep 17 00:00:00 2001 From: Uwe Klotz <uwe.klotz@slowtec.de> Date: Sun, 1 Dec 2024 10:39:37 +0100 Subject: [PATCH] rtu: Fix unbounded memory allocations by wrong reserve() usage (#304) --- src/codec/rtu.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codec/rtu.rs b/src/codec/rtu.rs index 67a2af2..7566d15 100644 --- a/src/codec/rtu.rs +++ b/src/codec/rtu.rs @@ -334,7 +334,7 @@ impl<'a> Encoder<RequestAdu<'a>> for ClientCodec { } = adu; let buf_offset = buf.len(); let request_pdu_size = request_pdu_size(&request)?; - buf.reserve((buf.capacity() - buf_offset) + request_pdu_size + 3); + buf.reserve(request_pdu_size + 3); buf.put_u8(hdr.slave_id); encode_request_pdu(buf, &request); let crc = calc_crc(&buf[buf_offset..]);