]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Make sure that no use of a function pointer gotten from a
authorGuido van Rossum <guido@python.org>
Fri, 22 May 1998 00:53:47 +0000 (00:53 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 22 May 1998 00:53:47 +0000 (00:53 +0000)
tp_as_sequence or tp_as_mapping structure is made without checking it
for NULL first.

Modules/stropmodule.c

index 73c2d85683243d722cdd97eeee6de9aa31baea03..2d11851e7c07e5c8bc58d69c6168f74e0162fafe 100644 (file)
@@ -274,13 +274,15 @@ strop_joinfields(self, args)
                }
                return res;
        }
-       else if (!PySequence_Check(seq)) {
+
+       if (seq->ob_type->tp_as_sequence == NULL ||
+                (getitemfunc = seq->ob_type->tp_as_sequence->sq_item) == NULL)
+       {
                PyErr_SetString(PyExc_TypeError,
                                "first argument must be a sequence");
                return NULL;
        }
-       /* type safe */
-       getitemfunc = seq->ob_type->tp_as_sequence->sq_item;
+       /* This is now type safe */
        for (i = 0; i < seqlen; i++) {
                PyObject *item = getitemfunc(seq, i);
                if (!item || !PyString_Check(item)) {