Commit 21d7533c authored by Serhiy Storchaka's avatar Serhiy Storchaka

Issue #23094: Fixed readline with frames in Python implementation of pickle.

parent 5106d044
......@@ -242,7 +242,7 @@ class _Unframer:
if not data:
self.current_frame = None
return self.file_readline()
if data[-1] != b'\n':
if data[-1] != b'\n'[0]:
raise UnpicklingError(
"pickle exhausted before end of frame")
return data
......
......@@ -1538,6 +1538,14 @@ class AbstractPickleTests(unittest.TestCase):
count_opcode(pickle.FRAME, pickled))
self.assertEqual(obj, self.loads(some_frames_pickle))
def test_frame_readline(self):
pickled = b'\x80\x04\x95\x05\x00\x00\x00\x00\x00\x00\x00I42\n.'
# 0: \x80 PROTO 4
# 2: \x95 FRAME 5
# 11: I INT 42
# 15: . STOP
self.assertEqual(self.loads(pickled), 42)
def test_nested_names(self):
global Nested
class Nested:
......
......@@ -50,6 +50,8 @@ Core and Builtins
Library
-------
- Issue #23094: Fixed readline with frames in Python implementation of pickle.
- Issue #23268: Fixed bugs in the comparison of ipaddress classes.
- Issue #21408: Removed incorrect implementations of __ne__() which didn't
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment