]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.9] bpo-41060: Avoid SEGFAULT when calling GET_INVALID_TARGET in the grammar (GH...
authorLysandros Nikolaou <lisandrosnik@gmail.com>
Sun, 21 Jun 2020 02:47:22 +0000 (05:47 +0300)
committerGitHub <noreply@github.com>
Sun, 21 Jun 2020 02:47:22 +0000 (19:47 -0700)
commit71bb921829c33c30b2e111e18948df8c2b6731e4
treecdcfa2d0ffed021c046d3dbc355fdeefa583b025
parentd301d9473e9a9b78d6e6678e9fe5ef66d46084e1
[3.9] bpo-41060: Avoid SEGFAULT when calling GET_INVALID_TARGET in the grammar (GH-21020) (GH-21024)

`GET_INVALID_TARGET` might unexpectedly return `NULL`, which if not
caught will cause a SEGFAULT. Therefore, this commit introduces a new
inline function `RAISE_SYNTAX_ERROR_INVALID_TARGET` that always
checks for `GET_INVALID_TARGET` returning NULL and can be used in
the grammar, replacing the long C ternary operation used till now.

(cherry picked from commit 6c4e0bd974f2895d42b63d9d004587e74b286c88)

Automerge-Triggered-By: @pablogsal
Grammar/python.gram
Lib/test/test_syntax.py
Parser/pegen/parse.c
Parser/pegen/pegen.h