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..]);