Issue #23094: Fixed readline with frames in Python implementation of pickle.
This commit is contained in:
parent
5106d044ec
commit
21d7533c4c
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue