Title: WFERR_UNMARSHALLABLE breaks recursion limit
Type: crash Stage:
Components: Interpreter Core Versions: Python 3.9, Python 3.8, Python 3.7, Python 3.6, Python 3.5, Python 2.7
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: herring, serhiy.storchaka
Priority: normal Keywords:

Created on 2019-08-30 00:04 by herring, last changed 2019-08-30 16:06 by serhiy.storchaka.

Messages (3)
msg350841 - (view) Author: Davis Herring (herring) Date: 2019-08-30 00:04
Most of the "p->depth--;" lines associated with "p->error = WFERR_UNMARSHALLABLE;" are spurious, and can crash the interpreter if enough of them prevent reaching MAX_MARSHAL_STACK_DEPTH.  (The only exceptions are in 2.7, where some of them are followed by a return that skips another "p->depth--;".)
msg350842 - (view) Author: Davis Herring (herring) Date: 2019-08-30 00:05
I can easily make a patch or pull request, but against which version(s) should I do so?  (Will such a trivial change require a CLA?)
msg350885 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2019-08-30 16:06
It should be against master or the the newest version in which the problem exists. After merging this pull request the changes will be backported to older versions.

3.6 and 3.5 are open for security fixes only.
Date User Action Args
2019-08-30 16:06:59serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg350885
2019-08-30 00:05:14herringsetmessages: + msg350842
2019-08-30 00:04:37herringcreate