[issue42716] Segmentation fault in running ast.parse() with large expression size.

2020-12-25 Thread Terry J. Reedy


Change by Terry J. Reedy :


--
resolution:  -> duplicate
stage:  -> resolved
status: open -> closed
superseder:  -> Segmentation fault in running ast.literal_eval() with large 
expression size.

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42716] Segmentation fault in running ast.parse() with large expression size.

2020-12-22 Thread Steve Stagg


Steve Stagg  added the comment:

fyi, Issue42712, Issue42712, Issue42714, Issue42715, Issue42716 all seem to be 
variants of the same underlying problem

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42716] Segmentation fault in running ast.parse() with large expression size.

2020-12-22 Thread Steve Stagg


Steve Stagg  added the comment:

PR: https://github.com/python/cpython/pull/23744 stops this from segfaulting.  
It does however raise a RecursionError:

RecursionError: maximum recursion depth exceeded during compilation

As per https://bugs.python.org/issue42609#msg382910, Serhiy implies that the 
new recursion error is probably expected and acceptable.

--
nosy: +serhiy.storchaka, stestagg

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue42716] Segmentation fault in running ast.parse() with large expression size.

2020-12-22 Thread Xinmeng Xia


New submission from Xinmeng Xia :

Calling function ast.parse() with large size can cause a segmentation fault in 
Python 3.5 -3.10. Please check the following two examples. The example 1 works 
as expected, while the second one triggers segmentation fault on Python 
3.5,3.6,3.7,3.8,3.9,3.10. The primary difference between these two examples lay 
on the value of "n".



Example 1:
=
import ast
mylist = []
n = 10
print(ast.parse("mylist"+"+mylist"*n))
==

The actual output: AST nodes on Python 3.5-3.10 (as expected)
# <_ast.Module object at 0x7f78d7b672e8>
 


Example 2:
===
import ast
mylist = []
n = 100
print(ast.parse("mylist"+"+mylist"*n))
# <_ast.Module object at 0x7f78d7b672e8>
===

The actual output: segmentation fault on Python 3.5 - 3.10 (not as expected)




My system information:

>> python3.10 -V
Python 3.10.0a2

>> python3.9 -V
Python 3.9.0rc1

>> python3.8 -V
Python 3.8.0

>> python3.7 -V
Python 3.7.3

>> python3.6 -V
Python 3.6.12

>> uname -v
#73~16.04.1-Ubuntu

--
components: Interpreter Core
messages: 383581
nosy: xxm
priority: normal
severity: normal
status: open
title: Segmentation fault in running ast.parse() with large expression size.
type: crash
versions: Python 3.10, Python 3.6, Python 3.7, Python 3.8, Python 3.9

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com