mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-23 08:47:47 +02:00
@@ -83,6 +83,8 @@ Detailed list of changes
|
|||||||
|
|
||||||
- Remote control: Fix a regression causing an escape code to leak when using @ launch with ``--no-response`` over the TTY (:iss:`7752`)
|
- Remote control: Fix a regression causing an escape code to leak when using @ launch with ``--no-response`` over the TTY (:iss:`7752`)
|
||||||
|
|
||||||
|
- OSC 52: Fix a regression in the previous release that broke handling of invalid base64 encoded data in OSC 52 requests (:iss:`7757`)
|
||||||
|
|
||||||
0.36.0 [2024-08-17]
|
0.36.0 [2024-08-17]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|||||||
@@ -289,7 +289,12 @@ class WriteRequest:
|
|||||||
|
|
||||||
def write_base64_data(self, b: bytes) -> None:
|
def write_base64_data(self, b: bytes) -> None:
|
||||||
if not self.max_size_exceeded:
|
if not self.max_size_exceeded:
|
||||||
decoded = self.decoder.decode(b)
|
try:
|
||||||
|
decoded = self.decoder.decode(b)
|
||||||
|
except ValueError:
|
||||||
|
log_error('Clipboard write request has invalid data, ignoring this chunk of data')
|
||||||
|
self.decoder.reset()
|
||||||
|
decoded = b''
|
||||||
if decoded:
|
if decoded:
|
||||||
self.tempfile.write(decoded)
|
self.tempfile.write(decoded)
|
||||||
if self.max_size > 0 and self.tempfile.tell() > (self.max_size * 1024 * 1024):
|
if self.max_size > 0 and self.tempfile.tell() > (self.max_size * 1024 * 1024):
|
||||||
|
|||||||
@@ -189,7 +189,12 @@ class EncodedDataStore:
|
|||||||
def add_base64_data(self, data: Union[str, bytes]) -> None:
|
def add_base64_data(self, data: Union[str, bytes]) -> None:
|
||||||
if isinstance(data, str):
|
if isinstance(data, str):
|
||||||
data = data.encode('ascii')
|
data = data.encode('ascii')
|
||||||
self.data_store(self.decoder.decode(data))
|
try:
|
||||||
|
decoded = self.decoder.decode(data)
|
||||||
|
except ValueError:
|
||||||
|
log_error('Ignoring invalid base64 encoded data in notification request')
|
||||||
|
else:
|
||||||
|
self.data_store(decoded)
|
||||||
|
|
||||||
def flush_encoded_data(self) -> None:
|
def flush_encoded_data(self) -> None:
|
||||||
self.decoder.reset()
|
self.decoder.reset()
|
||||||
|
|||||||
Reference in New Issue
Block a user