From 630a378451ea91afc2fa1dbe698f92445539af30 Mon Sep 17 00:00:00 2001 From: Zhengyu Gu Date: Mon, 13 Jul 2026 18:38:14 +0000 Subject: [PATCH 1/2] Profiler's fuzz tests store corpus files under wrong directories --- ddprof-lib/src/test/fuzz/README.md | 4 ++-- .../{fuzz_arguments => arguments}/cstack_dwarf | 0 .../{fuzz_arguments => arguments}/start_alloc | 0 .../corpus/{fuzz_arguments => arguments}/start_cpu | 0 .../{fuzz_arguments => arguments}/start_wall_file | 0 .../fuzz/corpus/{fuzz_arguments => arguments}/stop | 0 .../corpus/{fuzz_buffer => buffer}/put8_sequence | 0 .../fuzz/corpus/{fuzz_buffer => buffer}/utf8_string | 0 .../fuzz/corpus/{fuzz_buffer => buffer}/varint_max | 0 .../seed0 | 0 .../seed_expansion | 0 .../{fuzz_dwarf => dwarf}/minimal_eh_frame_hdr | 0 .../{fuzz_elf => elf}/bug1_section_header_oob_1 | Bin .../{fuzz_elf => elf}/bug1_section_header_oob_2 | Bin .../corpus/{fuzz_elf => elf}/bug2_symtab_size_oob | Bin .../{fuzz_elf => elf}/bug3_buildid_note_overflow | Bin .../basic_rotation | Bin .../double_special_values | Bin .../double_truncated_payload | Bin .../intptr_roundtrip | Bin .../tracked_lifecycle | Bin .../tracked_nullptr_recreate | Bin .../tracked_overwrite_padding | Bin ddprof-lib/src/test/fuzz/fuzz_arguments.cpp | 2 +- 24 files changed, 3 insertions(+), 3 deletions(-) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_arguments => arguments}/cstack_dwarf (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_arguments => arguments}/start_alloc (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_arguments => arguments}/start_cpu (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_arguments => arguments}/start_wall_file (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_arguments => arguments}/stop (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_buffer => buffer}/put8_sequence (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_buffer => buffer}/utf8_string (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_buffer => buffer}/varint_max (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_callTraceStorage => callTraceStorage}/seed0 (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_callTraceStorage => callTraceStorage}/seed_expansion (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_dwarf => dwarf}/minimal_eh_frame_hdr (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_elf => elf}/bug1_section_header_oob_1 (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_elf => elf}/bug1_section_header_oob_2 (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_elf => elf}/bug2_symtab_size_oob (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_elf => elf}/bug3_buildid_note_overflow (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_stringDictionary => stringDictionary}/basic_rotation (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_threadLocal => threadLocal}/double_special_values (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_threadLocal => threadLocal}/double_truncated_payload (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_threadLocal => threadLocal}/intptr_roundtrip (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_threadLocal => threadLocal}/tracked_lifecycle (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_threadLocal => threadLocal}/tracked_nullptr_recreate (100%) rename ddprof-lib/src/test/fuzz/corpus/{fuzz_threadLocal => threadLocal}/tracked_overwrite_padding (100%) diff --git a/ddprof-lib/src/test/fuzz/README.md b/ddprof-lib/src/test/fuzz/README.md index ef0c63bd99..e55b2e6e05 100644 --- a/ddprof-lib/src/test/fuzz/README.md +++ b/ddprof-lib/src/test/fuzz/README.md @@ -204,7 +204,7 @@ ddprof-lib/fuzz/build/bin/fuzz/dwarf/dwarf ## Adding New Fuzz Targets -1. Create a new `.cpp` file in this directory (e.g., `fuzz_newfeature.cpp`) +1. Create a new `.cpp` file in this directory (e.g., `newfeature.cpp`) 2. Implement the `LLVMFuzzerTestOneInput` function: ```cpp extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { @@ -212,7 +212,7 @@ ddprof-lib/fuzz/build/bin/fuzz/dwarf/dwarf return 0; } ``` -3. Optionally add seed corpus files in `corpus/fuzz_newfeature/` +3. Optionally add seed corpus files in `corpus/fnewfeature/` 4. The build system will automatically detect the new target ## CI Integration diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/cstack_dwarf b/ddprof-lib/src/test/fuzz/corpus/arguments/cstack_dwarf similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/cstack_dwarf rename to ddprof-lib/src/test/fuzz/corpus/arguments/cstack_dwarf diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/start_alloc b/ddprof-lib/src/test/fuzz/corpus/arguments/start_alloc similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/start_alloc rename to ddprof-lib/src/test/fuzz/corpus/arguments/start_alloc diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/start_cpu b/ddprof-lib/src/test/fuzz/corpus/arguments/start_cpu similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/start_cpu rename to ddprof-lib/src/test/fuzz/corpus/arguments/start_cpu diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/start_wall_file b/ddprof-lib/src/test/fuzz/corpus/arguments/start_wall_file similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/start_wall_file rename to ddprof-lib/src/test/fuzz/corpus/arguments/start_wall_file diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/stop b/ddprof-lib/src/test/fuzz/corpus/arguments/stop similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/stop rename to ddprof-lib/src/test/fuzz/corpus/arguments/stop diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_buffer/put8_sequence b/ddprof-lib/src/test/fuzz/corpus/buffer/put8_sequence similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_buffer/put8_sequence rename to ddprof-lib/src/test/fuzz/corpus/buffer/put8_sequence diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_buffer/utf8_string b/ddprof-lib/src/test/fuzz/corpus/buffer/utf8_string similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_buffer/utf8_string rename to ddprof-lib/src/test/fuzz/corpus/buffer/utf8_string diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_buffer/varint_max b/ddprof-lib/src/test/fuzz/corpus/buffer/varint_max similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_buffer/varint_max rename to ddprof-lib/src/test/fuzz/corpus/buffer/varint_max diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_callTraceStorage/seed0 b/ddprof-lib/src/test/fuzz/corpus/callTraceStorage/seed0 similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_callTraceStorage/seed0 rename to ddprof-lib/src/test/fuzz/corpus/callTraceStorage/seed0 diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_callTraceStorage/seed_expansion b/ddprof-lib/src/test/fuzz/corpus/callTraceStorage/seed_expansion similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_callTraceStorage/seed_expansion rename to ddprof-lib/src/test/fuzz/corpus/callTraceStorage/seed_expansion diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_dwarf/minimal_eh_frame_hdr b/ddprof-lib/src/test/fuzz/corpus/dwarf/minimal_eh_frame_hdr similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_dwarf/minimal_eh_frame_hdr rename to ddprof-lib/src/test/fuzz/corpus/dwarf/minimal_eh_frame_hdr diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug1_section_header_oob_1 b/ddprof-lib/src/test/fuzz/corpus/elf/bug1_section_header_oob_1 similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug1_section_header_oob_1 rename to ddprof-lib/src/test/fuzz/corpus/elf/bug1_section_header_oob_1 diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug1_section_header_oob_2 b/ddprof-lib/src/test/fuzz/corpus/elf/bug1_section_header_oob_2 similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug1_section_header_oob_2 rename to ddprof-lib/src/test/fuzz/corpus/elf/bug1_section_header_oob_2 diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug2_symtab_size_oob b/ddprof-lib/src/test/fuzz/corpus/elf/bug2_symtab_size_oob similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug2_symtab_size_oob rename to ddprof-lib/src/test/fuzz/corpus/elf/bug2_symtab_size_oob diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug3_buildid_note_overflow b/ddprof-lib/src/test/fuzz/corpus/elf/bug3_buildid_note_overflow similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_elf/bug3_buildid_note_overflow rename to ddprof-lib/src/test/fuzz/corpus/elf/bug3_buildid_note_overflow diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_stringDictionary/basic_rotation b/ddprof-lib/src/test/fuzz/corpus/stringDictionary/basic_rotation similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_stringDictionary/basic_rotation rename to ddprof-lib/src/test/fuzz/corpus/stringDictionary/basic_rotation diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/double_special_values b/ddprof-lib/src/test/fuzz/corpus/threadLocal/double_special_values similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/double_special_values rename to ddprof-lib/src/test/fuzz/corpus/threadLocal/double_special_values diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/double_truncated_payload b/ddprof-lib/src/test/fuzz/corpus/threadLocal/double_truncated_payload similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/double_truncated_payload rename to ddprof-lib/src/test/fuzz/corpus/threadLocal/double_truncated_payload diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/intptr_roundtrip b/ddprof-lib/src/test/fuzz/corpus/threadLocal/intptr_roundtrip similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/intptr_roundtrip rename to ddprof-lib/src/test/fuzz/corpus/threadLocal/intptr_roundtrip diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/tracked_lifecycle b/ddprof-lib/src/test/fuzz/corpus/threadLocal/tracked_lifecycle similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/tracked_lifecycle rename to ddprof-lib/src/test/fuzz/corpus/threadLocal/tracked_lifecycle diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/tracked_nullptr_recreate b/ddprof-lib/src/test/fuzz/corpus/threadLocal/tracked_nullptr_recreate similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/tracked_nullptr_recreate rename to ddprof-lib/src/test/fuzz/corpus/threadLocal/tracked_nullptr_recreate diff --git a/ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/tracked_overwrite_padding b/ddprof-lib/src/test/fuzz/corpus/threadLocal/tracked_overwrite_padding similarity index 100% rename from ddprof-lib/src/test/fuzz/corpus/fuzz_threadLocal/tracked_overwrite_padding rename to ddprof-lib/src/test/fuzz/corpus/threadLocal/tracked_overwrite_padding diff --git a/ddprof-lib/src/test/fuzz/fuzz_arguments.cpp b/ddprof-lib/src/test/fuzz/fuzz_arguments.cpp index 46b59bfa61..23b8dc6c06 100644 --- a/ddprof-lib/src/test/fuzz/fuzz_arguments.cpp +++ b/ddprof-lib/src/test/fuzz/fuzz_arguments.cpp @@ -105,7 +105,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { * Optional: Provide initial corpus seeds to guide fuzzing. * * libFuzzer can use these to understand the expected input format. - * Place seed files in ddprof-lib/src/test/fuzz/corpus/fuzz_arguments/ + * Place seed files in ddprof-lib/src/test/fuzz/corpus/arguments/ */ #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION // Example valid argument strings for initial corpus: From 53f4cc24c64a265397afc7ec3df7ead13c879818 Mon Sep 17 00:00:00 2001 From: Zhengyu Gu Date: Mon, 13 Jul 2026 19:12:38 +0000 Subject: [PATCH 2/2] Fix typo --- ddprof-lib/src/test/fuzz/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ddprof-lib/src/test/fuzz/README.md b/ddprof-lib/src/test/fuzz/README.md index e55b2e6e05..db69ed045d 100644 --- a/ddprof-lib/src/test/fuzz/README.md +++ b/ddprof-lib/src/test/fuzz/README.md @@ -204,7 +204,7 @@ ddprof-lib/fuzz/build/bin/fuzz/dwarf/dwarf ## Adding New Fuzz Targets -1. Create a new `.cpp` file in this directory (e.g., `newfeature.cpp`) +1. Create a new `.cpp` file in this directory (e.g., `fuzz_newfeature.cpp`) 2. Implement the `LLVMFuzzerTestOneInput` function: ```cpp extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { @@ -212,7 +212,7 @@ ddprof-lib/fuzz/build/bin/fuzz/dwarf/dwarf return 0; } ``` -3. Optionally add seed corpus files in `corpus/fnewfeature/` +3. Optionally add seed corpus files in `corpus/newfeature/` 4. The build system will automatically detect the new target ## CI Integration