summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorPablo Galindo Salgado <Pablogsal@gmail.com>2022-07-31 15:33:56 (GMT)
committerGitHub <noreply@github.com>2022-07-31 15:33:56 (GMT)
commitaa37ffda29ac48fb2df5a7029ba2e626ecc45850 (patch)
tree748f6ebe2d1bcc3b34cf999b15c1618a9365597b /Python
parent50b2261bdac98303087287b24eef96abd45a82f9 (diff)
downloadcpython-aa37ffda29ac48fb2df5a7029ba2e626ecc45850.zip
cpython-aa37ffda29ac48fb2df5a7029ba2e626ecc45850.tar.gz
cpython-aa37ffda29ac48fb2df5a7029ba2e626ecc45850.tar.bz2
bpo-45445: Revert "bpo-45445: Fail if an invalid X-option is provided in the command line (GH-28823)" (#94745)
Diffstat (limited to 'Python')
-rw-r--r--Python/initconfig.c48
1 files changed, 0 insertions, 48 deletions
diff --git a/Python/initconfig.c b/Python/initconfig.c
index d29c693..70f0363 100644
--- a/Python/initconfig.c
+++ b/Python/initconfig.c
@@ -2061,49 +2061,6 @@ _PyConfig_InitImportConfig(PyConfig *config)
return config_init_import(config, 1);
}
-// List of known xoptions to validate against the provided ones. Note that all
-// options are listed, even if they are only available if a specific macro is
-// set, like -X showrefcount which requires a debug build. In this case unknown
-// options are silently ignored.
-const wchar_t* known_xoptions[] = {
- L"faulthandler",
- L"showrefcount",
- L"tracemalloc",
- L"importtime",
- L"dev",
- L"utf8",
- L"pycache_prefix",
- L"warn_default_encoding",
- L"no_debug_ranges",
- L"frozen_modules",
- NULL,
-};
-
-static const wchar_t*
-_Py_check_xoptions(const PyWideStringList *xoptions, const wchar_t **names)
-{
- for (Py_ssize_t i=0; i < xoptions->length; i++) {
- const wchar_t *option = xoptions->items[i];
- size_t len;
- wchar_t *sep = wcschr(option, L'=');
- if (sep != NULL) {
- len = (sep - option);
- }
- else {
- len = wcslen(option);
- }
- int found = 0;
- for (const wchar_t** name = names; *name != NULL; name++) {
- if (wcsncmp(option, *name, len) == 0 && (*name)[len] == L'\0') {
- found = 1;
- }
- }
- if (found == 0) {
- return option;
- }
- }
- return NULL;
-}
static PyStatus
config_read(PyConfig *config, int compute_path_config)
@@ -2119,11 +2076,6 @@ config_read(PyConfig *config, int compute_path_config)
}
/* -X options */
- const wchar_t* option = _Py_check_xoptions(&config->xoptions, known_xoptions);
- if (option != NULL) {
- return PyStatus_Error("Unknown value for option -X (see --help-xoptions)");
- }
-
if (config_get_xoption(config, L"showrefcount")) {
config->show_ref_count = 1;
}