diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-09-22 16:41:20 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-09-22 16:41:20 (GMT) |
commit | 63dc548109c4f5e17280382831b93fb8e9da9207 (patch) | |
tree | 84948c6fe6dbb4db020fed4458b5aef220b42adb /Python | |
parent | 5ed548715a2115ec73fce92074ac97ed832d2e19 (diff) | |
download | cpython-63dc548109c4f5e17280382831b93fb8e9da9207.zip cpython-63dc548109c4f5e17280382831b93fb8e9da9207.tar.gz cpython-63dc548109c4f5e17280382831b93fb8e9da9207.tar.bz2 |
Issue #28086: Single var-positional argument of tuple subtype was passed
unscathed to the C-defined function. Now it is converted to exact tuple.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index ff36d36..39cf330 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3310,7 +3310,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) } callargs = POP(); func = TOP(); - if (!PyTuple_Check(callargs)) { + if (!PyTuple_CheckExact(callargs)) { if (Py_TYPE(callargs)->tp_iter == NULL && !PySequence_Check(callargs)) { PyErr_Format(PyExc_TypeError, @@ -3327,7 +3327,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) goto error; } } - assert(PyTuple_Check(callargs)); + assert(PyTuple_CheckExact(callargs)); result = do_call_core(func, callargs, kwargs); Py_DECREF(func); |