From 8d4fe0e821e948f62501a30374c5f7dddbcbb7af Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 20 Jul 2023 13:12:15 +0530 Subject: [PATCH] Fix de-serialization of base64 data --- kitty/file_transmission.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kitty/file_transmission.py b/kitty/file_transmission.py index 2fd81ba06..c754b0f60 100644 --- a/kitty/file_transmission.py +++ b/kitty/file_transmission.py @@ -344,7 +344,7 @@ def handle_item(key: memoryview, val: memoryview) -> None: sval = base64_decode(val).decode('utf-8') else: sval = safe_string(decode_utf8_buffer(val)) - setattr(ans, field.name, safe_string(sval)) + setattr(ans, field.name, sval) parse_ftc(data, handle_item) if ans.action is Action.invalid: @@ -565,10 +565,13 @@ def check_bypass(password: str, request_id: str, bypass_data: str) -> bool: if abs(delta) > 5 * 60 * 1e9: return False return payload == f'{request_id};{password}' - except Exception: + except Exception as err: + log_error(f'Invalid file transmission bypass data received: {err}') return False elif protocol == 'sha256': return (encode_bypass(request_id, password) == bypass_data) if password else False + else: + log_error(f'Invalid file transmission bypass data received with protocol: {protocol}') return False