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 ezio.melotti
Recipients ezio.melotti
Date 2011-05-10.16:17:19
SpamBayes Score 1.2129051e-06
Marked as misclassified No
Message-id <1305044249.51.0.994959411456.issue12051@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2011-05-10 16:17:29ezio.melottisetrecipients: + ezio.melotti
2011-05-10 16:17:29ezio.melottisetmessageid: <1305044249.51.0.994959411456.issue12051@psf.upfronthosting.co.za>
2011-05-10 16:17:19ezio.melottilinkissue12051 messages
2011-05-10 16:17:19ezio.melotticreate