mirror of
https://github.com/python/cpython.git
synced 2025-10-31 21:51:50 +00:00
[3.14] gh-135855: Raise TypeError When Passing Non-dict Object to _interpreters.set___main___attrs (gh-135900)
(cherry picked from commit 4e6f0d116, AKA gh-135856)
Co-authored-by: Brian Schubert <brianm.schubert@gmail.com>
This commit is contained in:
parent
fa74331a4c
commit
090a42b5eb
4 changed files with 29 additions and 12 deletions
|
|
@ -1039,8 +1039,8 @@ interp_set___main___attrs(PyObject *self, PyObject *args, PyObject *kwargs)
|
|||
PyObject *id, *updates;
|
||||
int restricted = 0;
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
||||
"OO|$p:" MODULE_NAME_STR ".set___main___attrs",
|
||||
kwlist, &id, &updates, &restricted))
|
||||
"OO!|$p:" MODULE_NAME_STR ".set___main___attrs",
|
||||
kwlist, &id, &PyDict_Type, &updates, &restricted))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1054,16 +1054,14 @@ interp_set___main___attrs(PyObject *self, PyObject *args, PyObject *kwargs)
|
|||
}
|
||||
|
||||
// Check the updates.
|
||||
if (updates != Py_None) {
|
||||
Py_ssize_t size = PyObject_Size(updates);
|
||||
if (size < 0) {
|
||||
return NULL;
|
||||
}
|
||||
if (size == 0) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"arg 2 must be a non-empty mapping");
|
||||
return NULL;
|
||||
}
|
||||
Py_ssize_t size = PyDict_Size(updates);
|
||||
if (size < 0) {
|
||||
return NULL;
|
||||
}
|
||||
if (size == 0) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"arg 2 must be a non-empty dict");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
_PyXI_session *session = _PyXI_NewSession();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue