summaryrefslogtreecommitdiffstats
path: root/Modules/newmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/newmodule.c')
-rw-r--r--Modules/newmodule.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Modules/newmodule.c b/Modules/newmodule.c
index 456e440..21b82ef 100644
--- a/Modules/newmodule.c
+++ b/Modules/newmodule.c
@@ -70,12 +70,17 @@ new_function(PyObject* unused, PyObject* args)
PyObject* defaults = Py_None;
PyFunctionObject* newfunc;
- if (!PyArg_ParseTuple(args, "O!O!|SO!:function",
+ if (!PyArg_ParseTuple(args, "O!O!|OO!:function",
&PyCode_Type, &code,
&PyDict_Type, &globals,
&name,
&PyTuple_Type, &defaults))
return NULL;
+ if (name != Py_None && !PyString_Check(name)) {
+ PyErr_SetString(PyExc_TypeError,
+ "arg 3 (name) must be None or string");
+ return NULL;
+ }
newfunc = (PyFunctionObject *)PyFunction_New(code, globals);
if (newfunc == NULL)