gdal/fuzzers
Even Rouault f7efedef65
ossfuzz: update to poppler-24.10.0 [ci skip]
2024-10-28 23:15:47 +01:00
..
tests Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
.gitignore Move gdal/* to toplevel 2021-10-25 13:40:31 +02:00
CMakeLists.txt Add MiraMonVector read/creation driver (#9688) 2024-04-19 13:13:53 +02:00
NC4_put_propattr_leak_fix.patch Move gdal/* to toplevel 2021-10-25 13:40:31 +02:00
README.TXT Move gdal/* to toplevel 2021-10-25 13:40:31 +02:00
build.sh ossfuzz: update to poppler-24.10.0 [ci skip] 2024-10-28 23:15:47 +01:00
build_google_oss_fuzzers.sh Add MiraMonVector read/creation driver (#9688) 2024-04-19 13:13:53 +02:00
build_seed_corpus.sh Add MiraMonVector read/creation driver (#9688) 2024-04-19 13:13:53 +02:00
filename_fuzzer.cpp fuzzers/filename_fuzzer.cpp: fix memleak [ci skip] 2023-10-31 17:29:23 +01:00
fix_stack_read_overflow_ncindexlookup.patch Move gdal/* to toplevel 2021-10-25 13:40:31 +02:00
fuzzingengine.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
gdal_fuzzer.cpp Avoid/fix Coverity performance warnings 2024-01-16 02:11:47 +01:00
gdal_translate_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
gdal_vector_translate_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
get_jpeg2000_structure_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
gml_geom_import_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
libnetcdf_fix_undefined_left_shift_in_ncx_get_size_t.patch Move gdal/* to toplevel 2021-10-25 13:40:31 +02:00
ogr_fuzzer.cpp Add MiraMonVector read/creation driver (#9688) 2024-04-19 13:13:53 +02:00
osr_set_from_user_input_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
spatialite_geom_import_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
wkb_import_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00
wkt_import_fuzzer.cpp Apply .clang-format to fuzzers 2022-12-17 19:44:32 +01:00

README.TXT

This directory contain fuzzer main functions and scripts for the
Google OSS Fuzz project: https://github.com/google/oss-fuzz/

The main build scripts are in:
https://github.com/google/oss-fuzz/tree/master/projects/gdal
and call scripts in this directory.

The list of issues is in:
https://bugs.chromium.org/p/oss-fuzz/issues/list?q=gdal

It is possible to filter issues related to a particular fuzzer program
(here cad_fuzzer) with:
https://bugs.chromium.org/p/oss-fuzz/issues/list?can=2&q=cad_fuzzer+gdal

Alternative:
https://oss-fuzz.com/v2/testcases?open=yes&q=cad_fuzzer

- Simple build of fuzzer main functions:
    $ make

- Simulate the build of (dummy) fuzzers like OSS Fuzz does:
    $ make dummyfuzzers
  They are created in /tmp/*_fuzzer as well as with the
  /tmp/*_fuzzer_seed_corpus.zip files
  
  Run one:
    $ /tmp/ogr_fuzzer a_file_name

- Run locally OSS Fuzz:
    $ git clone https://github.com/google/oss-fuzz.git
    $ cd oss-fuzz
    $ export PROJECT_NAME=gdal
    $ python infra/helper.py build_image $PROJECT_NAME

  Build fuzzers with the address sanitizer (could use undefined, etc...)
    $ python infra/helper.py build_fuzzers --sanitizer address $PROJECT_NAME

  Test a particular fuzzer (replace shape_fuzzer by other fuzzers
  like the ones generated in /tmp by "make dummyfuzzers")
    $ python infra/helper.py run_fuzzer $PROJECT_NAME shape_fuzzer


How to deal with issues reported in https://bugs.chromium.org/p/oss-fuzz/issues/list?q=gdal ?

    1. Leave a comment in (chromium database) bug entry to indicate that you work on it
    2. Work
    3. Commit a bug fix with log including "Credit to OSS-Fuzz" and a link to the bugs.chromium.org ticket
    4. Add in the bugs.chromium.org ticket a link to the Trac changeset implementing the fix.
    5. Check chromium closed the bug (after one or two days typically)