This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: Use of unitialized variable `fields` along error path in code generated from
Type: compile error Stage: resolved
Components: Interpreter Core Versions: Python 3.10
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: BTaskaya, blarsen, vstinner
Priority: normal Keywords: patch

Created on 2020-07-03 21:47 by blarsen, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 21307 merged vstinner, 2020-07-03 23:10
Messages (4)
msg372963 - (view) Author: Brad Larsen (blarsen) * Date: 2020-07-03 21:47
In commit b1cc6ba73 from earlier today, an error-handling path can now read an uninitialized variable.

In particular, is used to generate C source, and when building that code with Clang 10, there is the attached warning.

Likely fix: initialize `fields` to `NULL`. Also, perhaps a CI loop that has `-Werror=sometimes-uninitialized` would help detect these.

Compiler warning:

Python/Python-ast.c:1147:9: warning: variable 'fields' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    if (state == NULL) {
Python/Python-ast.c:1210:16: note: uninitialized use occurs here
./Include/object.h:520:51: note: expanded from macro 'Py_XDECREF'
#define Py_XDECREF(op) _Py_XDECREF(_PyObject_CAST(op))
./Include/object.h:112:41: note: expanded from macro '_PyObject_CAST'
#define _PyObject_CAST(op) ((PyObject*)(op))
Python/Python-ast.c:1147:5: note: remove the 'if' if its condition is always false
    if (state == NULL) {
Python/Python-ast.c:1145:35: note: initialize the variable 'fields' to silence this warning
    PyObject *key, *value, *fields;
                                   = NULL
1 warning generated.
msg372997 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-07-04 21:18
New changeset 1f76453173267887ed05bb3783e862cb22365ae8 by Victor Stinner in branch 'master':
bpo-41204: Fix compiler warning in ast_type_init() (GH-21307)
msg372998 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-07-04 21:21
Thanks for the report, it's not fixed.
msg375115 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-08-10 13:56
New changeset d2bea2636d5f0c2b196966315790af8e79c7bf82 by Victor Stinner in branch '3.9':
[3.9] bpo-41194: Convert _ast extension to PEP 489 (GH-21807)
Date User Action Args
2022-04-11 14:59:33adminsetgithub: 85376
2020-08-10 13:56:02vstinnersetmessages: + msg375115
2020-07-04 21:21:07vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg372998

stage: patch review -> resolved
2020-07-04 21:18:22vstinnersetmessages: + msg372997
2020-07-04 14:55:52BTaskayasetnosy: + BTaskaya
2020-07-03 23:10:05vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request20459
2020-07-03 21:47:00blarsencreate