]> granicus.if.org Git - python/commitdiff
bpo-29505: Fix interpreter in fuzzing targets to be relocatable (GH-13907)
authorAmmar Askar <ammar@ammaraskar.com>
Sat, 8 Jun 2019 14:43:16 +0000 (07:43 -0700)
committerGregory P. Smith <greg@krypto.org>
Sat, 8 Jun 2019 14:43:16 +0000 (07:43 -0700)
Modules/_xxtestfuzz/fuzzer.c

index b50eb651271043bb48b833de4de1d770ef9fdb0f..54f816ebc93dae44e70bd5a0d6a3daa37febd4a6 100644 (file)
@@ -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.