From 89f8177dcfdbcf17c85bb6998c946c9f42bf6e27 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 30 Sep 2019 12:52:29 +0200 Subject: [PATCH] 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. --- PC/python_uwp.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PC/python_uwp.cpp b/PC/python_uwp.cpp index 06c1dd35365..2656d188c25 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)) {