New submission from Ezio Melotti <ezio.melo...@gmail.com>: Subclasses of JSONEncoder that use check_circular=False can segfault json: >>> import json >>> class EndlessJSONEncoder(json.JSONEncoder): ... def default(self, o): ... return [o] ... >>> EndlessJSONEncoder(check_circular=False).encode(5j) Segmentation fault
The attached patch fixes it raising a "RuntimeError: maximum recursion depth exceeded". There might be other ways to get a segfault, because there are other recursive calls involving more functions (i.e. a calls b, and b calls a) that are not covered by the patch. ---------- assignee: ezio.melotti components: Extension Modules files: issue12051.diff keywords: needs review, patch messages: 135716 nosy: ezio.melotti priority: normal severity: normal stage: commit review status: open title: Segfault in JSONEncoder subclasses with check_circular=False type: crash versions: Python 2.7 Added file: http://bugs.python.org/file21955/issue12051.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12051> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com