New submission from Daniel Lepage:

The following code causes a segmentation fault:
class Failure(object):
    def __getattr__(self, attr):
        return (self, None)
issubclass(Failure(), int)

I am running a macbook pro, OS X 10.12.4, and have observed the problem in 
python 3.5.2, 3.6.0, and 3.6.1.

It appears that returning (self,) causes it to go into an infinite loop 
attempting to get `x.__bases__`, and returning `(self, y)` for any value `y` 
causes it to attempt to get `x.__bases__` 262,030 times and then segfault.

A crash log is attached.

----------
components: Interpreter Core
files: segfault.crash
messages: 295150
nosy: Daniel Lepage
priority: normal
severity: normal
status: open
title: issubclass segfaults on objects with weird __getattr__
type: crash
versions: Python 3.5, Python 3.6
Added file: http://bugs.python.org/file46924/segfault.crash

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue30570>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to