diff --git a/src/paho/mqtt/client.py b/src/paho/mqtt/client.py index 4ccc8696..33b6cd8d 100644 --- a/src/paho/mqtt/client.py +++ b/src/paho/mqtt/client.py @@ -3346,6 +3346,8 @@ def _pack_remaining_length( self, packet: bytearray, remaining_length: int ) -> bytearray: remaining_bytes = [] + if remaining_length > 268_435_455: + raise ValueError("Packet too large") while True: byte = remaining_length % 128 remaining_length = remaining_length // 128 @@ -3356,7 +3358,6 @@ def _pack_remaining_length( remaining_bytes.append(byte) packet.append(byte) if remaining_length == 0: - # FIXME - this doesn't deal with incorrectly large payloads return packet def _pack_str16(self, packet: bytearray, data: bytes | str) -> None: