From 82a24d6b531519bcd212fb547b8dbe7fbed31797 Mon Sep 17 00:00:00 2001 From: marfer Date: Sun, 21 Sep 2025 17:43:34 +0200 Subject: [PATCH] Correct handling of trailing zeros in _rle_encode (#4702) --- telethon/utils.py | 2 ++ tests/telethon/test_utils.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/telethon/utils.py b/telethon/utils.py index d570f8cb..9e71ef7d 100644 --- a/telethon/utils.py +++ b/telethon/utils.py @@ -1095,6 +1095,8 @@ def _rle_encode(string): count = 0 new += bytes([cur]) + if count != 0: + new += b'\0' + bytes([count]) return new diff --git a/tests/telethon/test_utils.py b/tests/telethon/test_utils.py index 99a46efb..f1ab33e9 100644 --- a/tests/telethon/test_utils.py +++ b/tests/telethon/test_utils.py @@ -52,3 +52,7 @@ def test_private_get_extension(): assert utils._get_extension(empty_buffer) == '' assert utils._get_extension(empty_buffer) == '' # make sure it did seek back assert utils._get_extension(CustomFd('foo')) == '' + + +def test_rle_encode_trailing_zeros(): + assert utils._rle_encode(b'\x12\x00\x00\x00\x00') == b'\x12\x00\x04'