diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-09-30 10:52:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-30 10:52:29 (GMT) |
commit | 89f8177dcfdbcf17c85bb6998c946c9f42bf6e27 (patch) | |
tree | f444a11726581a3b93d4d7af022dbeefa40bf87a /PC/python_uwp.cpp | |
parent | fc4a044a3c54ce21e9ed150f7d769fb479d34c49 (diff) | |
download | cpython-89f8177dcfdbcf17c85bb6998c946c9f42bf6e27.zip cpython-89f8177dcfdbcf17c85bb6998c946c9f42bf6e27.tar.gz cpython-89f8177dcfdbcf17c85bb6998c946c9f42bf6e27.tar.bz2 |
bpo-38304: Fix PyConfig usage in python_uwp.cpp (GH-16487)
* Set PyPreConfig.struct_size and PyConfig.struct_size as required by
the API.
* PyPreConfig_InitPythonConfig() can now fail: check PyStatus result.
Diffstat (limited to 'PC/python_uwp.cpp')
-rw-r--r-- | PC/python_uwp.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/PC/python_uwp.cpp b/PC/python_uwp.cpp index 06c1dd3..2656d18 100644 --- a/PC/python_uwp.cpp +++ b/PC/python_uwp.cpp @@ -167,7 +167,10 @@ wmain(int argc, wchar_t **argv) PyStatus status; PyPreConfig preconfig; + preconfig.struct_size = sizeof(PyPreConfig); + PyConfig config; + config.struct_size = sizeof(PyConfig); const wchar_t *moduleName = NULL; const wchar_t *p = wcsrchr(argv[0], L'\\'); @@ -186,7 +189,10 @@ wmain(int argc, wchar_t **argv) } } - PyPreConfig_InitPythonConfig(&preconfig); + status = PyPreConfig_InitPythonConfig(&preconfig); + if (PyStatus_Exception(status)) { + goto fail_without_config; + } if (!moduleName) { status = Py_PreInitializeFromArgs(&preconfig, argc, argv); if (PyStatus_Exception(status)) { |