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

Created on 2019-08-30 00:04 by herring, last changed 2020-04-12 12:25 by corona10.

Pull Requests
URL Status Linked Edit
PR 19482 open shihai1991, 2020-04-12 11:26
Messages (4)
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.
msg366235 - (view) Author: hai shi (shihai1991) * Date: 2020-04-12 11:31
If I understand correctly, `p->depth--` associated with `p->error` could be removed?
History
Date User Action Args
2020-04-12 12:25:29corona10setversions: - Python 2.7, Python 3.5, Python 3.6
2020-04-12 11:31:56shihai1991setmessages: + msg366235
2020-04-12 11:26:15shihai1991setkeywords: + patch
nosy: + shihai1991

pull_requests: + pull_request18836
stage: patch review
2019-08-30 16:06:59serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg350885
2019-08-30 00:05:14herringsetmessages: + msg350842
2019-08-30 00:04:37herringcreate