Message135716
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. |
|
Date |
User |
Action |
Args |
2011-05-10 16:17:29 | ezio.melotti | set | recipients:
+ ezio.melotti |
2011-05-10 16:17:29 | ezio.melotti | set | messageid: <1305044249.51.0.994959411456.issue12051@psf.upfronthosting.co.za> |
2011-05-10 16:17:19 | ezio.melotti | link | issue12051 messages |
2011-05-10 16:17:19 | ezio.melotti | create | |
|