Kaydet (Commit) b3619be9 authored tarafından Benjamin Peterson's avatar Benjamin Peterson

make _tkinter._flatten check the result of PySequence_Size for errors #3880

üst 4a69410e
......@@ -2,10 +2,19 @@
import unittest
import os
import _tkinter
from test import test_support
from Tkinter import Tcl
from _tkinter import TclError
class TkinterTest(unittest.TestCase):
def testFlattenLen(self):
# flatten(<object with no length>)
self.assertRaises(TypeError, _tkinter._flatten, True)
class TclTest(unittest.TestCase):
def setUp(self):
......@@ -151,7 +160,7 @@ class TclTest(unittest.TestCase):
os.environ['DISPLAY'] = old_display
def test_main():
test_support.run_unittest(TclTest)
test_support.run_unittest(TclTest, TkinterTest)
if __name__ == "__main__":
test_main()
......@@ -2908,7 +2908,9 @@ Tkinter_Flatten(PyObject* self, PyObject* args)
return NULL;
context.maxsize = PySequence_Size(item);
if (context.maxsize <= 0)
if (context.maxsize < 0)
return NULL;
if (context.maxsize == 0)
return PyTuple_New(0);
context.tuple = PyTuple_New(context.maxsize);
......
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