Extend the page displaying Fuzz Introspector projects with more
information. Primarily, reachability and coverage information and then
wrapped it in a table where searching and sorting is possible.
Example page:
https://davidkorczynski.github.io/staticpages/fuzz_index.html
Signed-off-by: David Korczynski <david@adalogics.com>
---------
Signed-off-by: David Korczynski <david@adalogics.com>
Co-authored-by: Oliver Chang <oliverchang@users.noreply.github.com>
When a corpus zip file is unzipped the destination folder is set to be
the directory corresponding to the filepath of the zip file but without
".zip" in the name. This is achieved by `for f in /corpus/*.zip; do
unzip -q $f -d ${f%%.*}` where `f%%.*` substitutes the path of `f` based
on the first occurrence of ".". This causes some issues with fuzztest
fuzzers where a fuzzer name always has a "." in it, e.g.
`escaping_test@EscapingTest.EscapingAStringNeverTriggersUndefinedBehavior`
Substituting the name in this way causes issues for some coverage builds
e.g.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53479
This changes it to substiute based on the last occurrence of ".", i.e.
just cutting off the ".zip".
Alternatively, we could substitute over
e.g. ".zip", however, this may cause some issues as a fuzztest fuzzer
may have ".zip" in the name.
Signed-off-by: David Korczynski <david@adalogics.com>
Signed-off-by: David Korczynski <david@adalogics.com>
We can make this public if we want.
You can observe the logs in real time by clicking on "details" of trial
build, getting `$BUILD_ID` and then doing
`gsutil cat gs://oss-fuzz-trialbuild-logs/log-$BUILD_ID.txt`
This is a follow-up to https://github.com/google/oss-fuzz/pull/9167 --
the change should also be applied in the build functions that are
responsible for downloading the corpus.
Signed-off-by: David Korczynski <david@adalogics.com>
With the python projects enabled, we need to broaden the coverage file
names that should to be downloaded.
This PR changes `download_coverage_data_steps()` function to download
all the contents of `textcov_reports` dir from the coverage bucket.
Download the zip and unzip it instead. There should be enough memory for
this on the tmpfs environment on Cloud Functions, but bump up the memory
to 4GB just in case.
Create a `OssFuzzRepo` which replicates the GitHub client library to
avoid changing too many things.
Fixes#8565
* Add Centipede as a fuzzer
* Specify dictionary param of Centipede
* Update docs
* Mark Centipede as experimental
* More accurate description
* Remove garbage
* Simplify code
* Move mkdir to dockerfile
* Add the weak.c trick
* Install deps with Centipede's script & uninstall new deps
* Fix doc
* Reuse libweak_sancov_stubs.so
* Reorganise flags
* format
* Consistent file type
* Reuse the weak references defined in Centipede
* Replace the shared library of weak symbols with a static one
* Correct the place to call mkdir
* Allow 2G of SHM for Centipede
* Create dirs in run_fuzzer
* Keep Centipede up-to-date
* Avoid duplicating Centipede's binary
* The params of Centipede and their explanations
* The engine info of centipede
* Save the target binary (with san) in a subdir of the project
* Set the target (with san) dir in check_build
* Create the target (with san) first to avoid side-effects
* Fic clone
* Fix format
* Add periods
* Fix comments
* Fix dirs
* Fix parameters
* Adding Centipede as a fuzzing engine for Scarecrow
* Add CI support
* Represent sanitizer with a variable
* Remove the unnecessary definition of FUZZER_OUT
* Reorganise binary directories
* format
* A minor note
* Present issues with dirs that alread exist
* Use os.path.join to join path
* Make a function to get the out/ in check build
* Reusing existing flags in .bazel
* Avoid hardcoding sanitizer, set rss_limit_mb=4096, leave address_space_limit_mb disabled
* Better ways to add bazel build options
* A better way to add bazel flags
* Remove redundant --bazelrc
* Better Cohesion
* Avoid code duplication
* Simplify code
* Exit on crash