This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author arigo
Recipients arigo
Date 2016-12-06.11:53:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1481025186.28.0.487795876763.issue28883@psf.upfronthosting.co.za>
In-reply-to
Content
(C6) I didn't try, but it seems that typeobject.c:mro_internal() is prone
  to a refcount crash.  It does this::

     old_mro = type->tp_mro;
     ...mro_invoke()...  /* might cause reentrance */
     type->tp_mro = new_mro;
     ...
     Py_XDECREF(old_mro);

  This last XDECREF drops the reference held by the previous value of
  ``type->tp_mro`` after we changed it.  But ``type->tp_mro`` might have
  changed because of mro_invoke(), which calls pure Python code.  If it
  did change, then old_mro is no longer the old value of
  ``type->tp_mro``.  The wrong object gets decrefed.
History
Date User Action Args
2016-12-06 11:53:06arigosetrecipients: + arigo
2016-12-06 11:53:06arigosetmessageid: <1481025186.28.0.487795876763.issue28883@psf.upfronthosting.co.za>
2016-12-06 11:53:06arigolinkissue28883 messages
2016-12-06 11:53:06arigocreate