Deeply nested binary arithmetic segfaults under native parser
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 229
- PR merge metrics
- No merged PRs in 30d
Description
This is definietly not a realistic code (but it is still used in projects [like this](https://github.com/facebook/facebook-python-business-sdk/blob/95e64a10d987d7a53963d17036b6730d07f84ab5/facebook_business/test/integration_campaign.py#L44-L77)), though I think it might point to an underlying stack overflow or something like that (no experience in debugging rust applications, so unfortunately can't provide any more insight than this)
Here is the exampe payload:
```py
(
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T' +
'X' + 'Y' + 'Z' + 'Q' + 'T'
)
```
Works perfectly with the python parser, but the native one crashes:
```
$ LIBCST_PARSER_TYPE=native python -m libcst.tool print t.py 444ms
[1] 11295 segmentation fault (core dumped) LIBCST_PARSER_TYPE=native python -m libcst.tool print t.py
```
Contributor guide
Assessment
This issue has not been assessed yet.