mirror of https://github.com/python/cpython
Issue #23094: Fixed readline with frames in Python implementation of pickle.
This commit is contained in:
commit
230586739c
|
@ -242,7 +242,7 @@ class _Unframer:
|
||||||
if not data:
|
if not data:
|
||||||
self.current_frame = None
|
self.current_frame = None
|
||||||
return self.file_readline()
|
return self.file_readline()
|
||||||
if data[-1] != b'\n':
|
if data[-1] != b'\n'[0]:
|
||||||
raise UnpicklingError(
|
raise UnpicklingError(
|
||||||
"pickle exhausted before end of frame")
|
"pickle exhausted before end of frame")
|
||||||
return data
|
return data
|
||||||
|
|
|
@ -1584,6 +1584,14 @@ class AbstractPickleTests(unittest.TestCase):
|
||||||
count_opcode(pickle.FRAME, pickled))
|
count_opcode(pickle.FRAME, pickled))
|
||||||
self.assertEqual(obj, self.loads(some_frames_pickle))
|
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):
|
def test_nested_names(self):
|
||||||
global Nested
|
global Nested
|
||||||
class Nested:
|
class Nested:
|
||||||
|
|
|
@ -218,6 +218,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #23094: Fixed readline with frames in Python implementation of pickle.
|
||||||
|
|
||||||
- Issue #23268: Fixed bugs in the comparison of ipaddress classes.
|
- Issue #23268: Fixed bugs in the comparison of ipaddress classes.
|
||||||
|
|
||||||
- Issue #21408: Removed incorrect implementations of __ne__() which didn't
|
- Issue #21408: Removed incorrect implementations of __ne__() which didn't
|
||||||
|
|
Loading…
Reference in New Issue