Hi,
I am using stackless python 3.4.2.  I'd like to know if anyone that has used 
PyTasklet_New function encountered the same problem when passing in NULL as the 
first argument. According to the documentation,
"PyTaskletObject *PyTasklet_New(PyTypeObject *type, PyObject *func)
Return a new tasklet object. type must be derived from PyTasklet_Type or NULL. 
func must be a callable object (normal use-case) or NULL, if the tasklet is 
being used via capture()."

But it crashes when I pass in NULL as first argument. I looked at the source 
code, and it is:

PyTasklet_New(PyTypeObject *type, PyObject *func)
{
    if (!PyType_IsSubtype(type, &PyTasklet_Type)) {
        PyErr_SetNone(PyExc_TypeError);
        return NULL;
    }
    ......
}


int
PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)
{
    PyObject *mro;

    mro = a->tp_mro;
                ....
}

So the pointer is dereferenced without being checked thus causing the crash?


Jun
_______________________________________________
Stackless mailing list
Stackless@stackless.com
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to