From a15a7bcaea54e1845ab2abe27e6f583294cd715b Mon Sep 17 00:00:00 2001 From: Ammar Askar Date: Sat, 8 Jun 2019 07:43:16 -0700 Subject: [PATCH] bpo-29505: Fix interpreter in fuzzing targets to be relocatable (GH-13907) --- Modules/_xxtestfuzz/fuzzer.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Modules/_xxtestfuzz/fuzzer.c b/Modules/_xxtestfuzz/fuzzer.c index b50eb651271..54f816ebc93 100644 --- a/Modules/_xxtestfuzz/fuzzer.c +++ b/Modules/_xxtestfuzz/fuzzer.c @@ -88,6 +88,14 @@ static int _run_fuzz(const uint8_t *data, size_t size, int(*fuzzer)(const char* /* CPython generates a lot of leak warnings for whatever reason. */ int __lsan_is_turned_off(void) { return 1; } +wchar_t wide_program_name[NAME_MAX]; + +int LLVMFuzzerInitialize(int *argc, char ***argv) { + wchar_t* wide_program_name = Py_DecodeLocale(*argv[0], NULL); + Py_SetProgramName(wide_program_name); + return 0; +} + /* Fuzz test interface. This returns the bitwise or of all fuzz test's return values.