Comment 1 for bug 251848

Revision history for this message
Ignas Mikalajūnas (ignas) wrote :

Ok, continuing the investigation:

it seems that python2.5 and python2.4 diverged in a different place in the code, as __Security_checker__ is a property not an attribute, the problem is in it's implementation. Which again is different in C from what it is in python...

The method selectChecker in C has:

/* if checker is _defaultChecker and isinstance(object, Exception): */
/* return None */

  if (checker == _defaultChecker
      && PyObject_IsInstance(object, PyExc_Exception))
    {
      Py_INCREF(Py_None);
      return Py_None;
    }

While there is no such line in the python implementation.

And that line seems to be triggered in python2.5 while it is not in python2.4

Any ideas?