From b860298ec1378d7fc1247c6c72ebf2cfc25f2f4b Mon Sep 17 00:00:00 2001 From: morcux Date: Tue, 10 Mar 2026 13:54:23 +0200 Subject: [PATCH 1/2] fix: gracefully handle empty byte array in leb128 decoding --- pybyntic/buffer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pybyntic/buffer.py b/pybyntic/buffer.py index 62b5c25..4d64631 100644 --- a/pybyntic/buffer.py +++ b/pybyntic/buffer.py @@ -31,6 +31,8 @@ def read_varint(self) -> int: packets.append(packet) if packet < 0x80: break + if not packets: + return 0 return leb128.u.decode(packets) # type: ignore def read_bytes(self, length: int) -> bytearray: From 123293911fc2cf744e729ce1d998b6545c137687 Mon Sep 17 00:00:00 2001 From: morcux Date: Tue, 10 Mar 2026 14:06:00 +0200 Subject: [PATCH 2/2] refactor: remove unused _is_buffer_empty method --- pybyntic/buffer.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pybyntic/buffer.py b/pybyntic/buffer.py index 4d64631..def29dc 100644 --- a/pybyntic/buffer.py +++ b/pybyntic/buffer.py @@ -9,9 +9,6 @@ class Buffer: def __init__(self, data: bytes): self.buffer = bytearray(data) - def _is_buffer_empty(self) -> bool: - return len(self.buffer) == 0 - def is_buffer_readable(self) -> bool: if len(self.buffer) == 0: return False