]> granicus.if.org Git - python/commitdiff
PyFunction_SetDefaults() is documented as taking None or a tuple.
authorNeal Norwitz <nnorwitz@gmail.com>
Sun, 16 Jul 2006 02:35:47 +0000 (02:35 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Sun, 16 Jul 2006 02:35:47 +0000 (02:35 +0000)
A NULL would crash the PyTuple_Check().  Now make NULL return a SystemError.

Reported by Klocwork #73.

Objects/funcobject.c

index 59cb5195074804b1ab4ad2942a34f29f5a7b0ee0..e514eeb2d3fd2e4c4f396c37703a0bc51a051f0e 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");