]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[Backport r50681 | neal.norwitz]
authorAndrew M. Kuchling <amk@amk.ca>
Thu, 5 Oct 2006 19:38:17 +0000 (19:38 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Thu, 5 Oct 2006 19:38:17 +0000 (19:38 +0000)
PyFunction_SetDefaults() is documented as taking None or a tuple.
A NULL would crash the PyTuple_Check().  Now make NULL return a SystemError.

Reported by Klocwork #73.

Objects/funcobject.c

index 36c1ba86f6c508fb7dae964de4e3bc9f93f6f1c9..ee373a057fddda0ad437789887249bae5579fd9d 100644 (file)
@@ -109,8 +109,8 @@ PyFunction_SetDefaults(PyObject *op, PyObject *defaults)
        }
        if (defaults == Py_None)
                defaults = NULL;
-       else if (PyTuple_Check(defaults)) {
-               Py_XINCREF(defaults);
+       else if (defaults && PyTuple_Check(defaults)) {
+               Py_INCREF(defaults);
        }
        else {
                PyErr_SetString(PyExc_SystemError, "non-tuple default args");