New submission from Pablo Galindo Salgado <[email protected]>:
This program can segfault the parser by stackoverflow:
import ast
code = "f(" + ",".join(['a' for _ in range(100000)]) + ")"
print("Ready!")
ast.parse(code)
the reason is that the rule for arguments has a simple recursion when
collecting args:
args[expr_ty]:
[...]
| a=named_expression b=[',' c=args { c }] {
[...] }
Check https://github.com/we-like-parsers/pegen/issues/245 for more context and
informaton
----------
messages: 376225
nosy: pablogsal
priority: normal
severity: normal
status: open
title: Use a loop to collect args in the parser instead of recursion
versions: Python 3.10, Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue41690>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com