mirror of https://github.com/python/cpython
bpo-44113: Update __xxtestfuzz not to use Py_SetProgramName (GH-26083)
This commit is contained in:
parent
6cd0446ef7
commit
a0ccc404ca
|
@ -411,9 +411,26 @@ int __lsan_is_turned_off(void) { return 1; }
|
|||
|
||||
|
||||
int LLVMFuzzerInitialize(int *argc, char ***argv) {
|
||||
wchar_t* wide_program_name = Py_DecodeLocale(*argv[0], NULL);
|
||||
Py_SetProgramName(wide_program_name);
|
||||
PyConfig config;
|
||||
PyConfig_InitPythonConfig(&config);
|
||||
config.install_signal_handlers = 0;
|
||||
PyStatus status;
|
||||
status = PyConfig_SetBytesString(&config, &config.program_name, *argv[0]);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
status = Py_InitializeFromConfig(&config);
|
||||
if (PyStatus_Exception(status)) {
|
||||
goto fail;
|
||||
}
|
||||
PyConfig_Clear(&config);
|
||||
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
PyConfig_Clear(&config);
|
||||
Py_ExitStatusException(status);
|
||||
}
|
||||
|
||||
/* Fuzz test interface.
|
||||
|
@ -424,12 +441,7 @@ int LLVMFuzzerInitialize(int *argc, char ***argv) {
|
|||
(And we bitwise or when running multiple tests to verify that normally we
|
||||
only return 0.) */
|
||||
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
if (!Py_IsInitialized()) {
|
||||
/* LLVMFuzzerTestOneInput is called repeatedly from the same process,
|
||||
with no separate initialization phase, sadly, so we need to
|
||||
initialize CPython ourselves on the first run. */
|
||||
Py_InitializeEx(0);
|
||||
}
|
||||
assert(Py_IsInitialized());
|
||||
|
||||
int rv = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue