summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-07-01 18:28:55 (GMT)
committerGitHub <noreply@github.com>2019-07-01 18:28:55 (GMT)
commit4c227e6a56a9704fe5b4e4509071796f3359f4bb (patch)
treef5f09d2e39edf421976d1f8389b032ce0a6234f8 /Modules
parent96f581cf9d2f1d7888d2fd9bb89f19f10c0477bf (diff)
downloadcpython-4c227e6a56a9704fe5b4e4509071796f3359f4bb.zip
cpython-4c227e6a56a9704fe5b4e4509071796f3359f4bb.tar.gz
cpython-4c227e6a56a9704fe5b4e4509071796f3359f4bb.tar.bz2
bpo-36763: Use PyConfig_Clear() (GH-14445)
Stop using "static PyConfig", PyConfig must now always use dynamically allocated strings: use PyConfig_SetString(), PyConfig_SetArgv() and PyConfig_Clear(). (cherry picked from commit 67310023f299b5a2fad71fca449b46d280036690) Co-authored-by: Victor Stinner <vstinner@redhat.com>
Diffstat (limited to 'Modules')
-rw-r--r--Modules/main.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/Modules/main.c b/Modules/main.c
index 853afed..b126f45 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -62,7 +62,7 @@ pymain_init(const _PyArgv *args)
PyConfig config;
status = PyConfig_InitPythonConfig(&config);
if (_PyStatus_EXCEPTION(status)) {
- return status;
+ goto done;
}
/* pass NULL as the config: config is read from command line arguments,
@@ -74,14 +74,18 @@ pymain_init(const _PyArgv *args)
status = PyConfig_SetArgv(&config, args->argc, args->wchar_argv);
}
if (_PyStatus_EXCEPTION(status)) {
- return status;
+ goto done;
}
status = Py_InitializeFromConfig(&config);
if (_PyStatus_EXCEPTION(status)) {
- return status;
+ goto done;
}
- return _PyStatus_OK();
+ status = _PyStatus_OK();
+
+done:
+ PyConfig_Clear(&config);
+ return status;
}