Skip to content

Commit ae87291

Browse files
committed
gh-144412: require tuple args in pickle REDUCE
1 parent 93b27e7 commit ae87291

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

Lib/pickle.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,6 +1724,8 @@ def load_reduce(self):
17241724
stack = self.stack
17251725
args = stack.pop()
17261726
func = stack[-1]
1727+
if not isinstance(args, tuple):
1728+
raise TypeError("argument list must be a tuple")
17271729
stack[-1] = func(*args)
17281730
dispatch[REDUCE[0]] = load_reduce
17291731

Lib/test/pickletester.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,6 +1435,7 @@ def test_bad_reduce(self):
14351435
self.assertEqual(self.loads(b'cbuiltins\nint\n)R.'), 0)
14361436
self.check_unpickling_error(TypeError, b'N)R.')
14371437
self.check_unpickling_error(TypeError, b'cbuiltins\nint\nNR.')
1438+
self.check_unpickling_error(TypeError, b'cbuiltins\nint\nNR.')
14381439

14391440
def test_bad_newobj(self):
14401441
error = (pickle.UnpicklingError, TypeError)

0 commit comments

Comments
 (0)