Commit Graph

5207 Commits

Author SHA1 Message Date
Florian Mayer 5740711ba1
Remove taylori from cc list (#5067) 2021-01-29 10:06:05 -08:00
tsdgeos 7866ec6566
poppler: Don't force an old meson version (#5065) 2021-01-28 18:14:47 -08:00
Damien Miller 62f70575c5
Enable fuzzing of key exchange (#5066)
* enable null cipher for fuzz tests

* hook key exchange fuzzer into build

Co-authored-by: Damien Miller <djm@google.com>
2021-01-28 16:51:47 -08:00
jonathanmetzman de2ecf8553
[cifuzz] Allow specifying corpus for run_fuzzer (#5064) 2021-01-28 15:04:43 -08:00
jonathanmetzman f2756d7321
[CIFuzz] Move run_fuzzers to new config system (#5063)
Also, decide is_github based on something not used/faked by Skia.
2021-01-29 09:49:03 +11:00
jonathanmetzman d7e85a20b0
[CIFuzz] Fix diffing + Refactor (#5032)
* [CIFuzz] Fix diffing + Refactor

Make diffing work in two scenarios where it previously failed:
1. Commit fuzzing. In this case, we diff $COMMIT against
$COMMIT^1 because the intent here is to fuzz the commit.
2. Fuzzing PRs that aren't to master. In this case, we previously
were diffing against origin/master. Instead, diff against the local
version of the base repo. This also has the nice effect of handling
PRs that havent pulled from master recently enough.

Also do refactoring.
1. Move code that is different for differenct CI systems to continuous_integration.py
2. Change how configuration in build_fuzzers is handled.
Previously configuration was gotten in build_fuzzers_entrypoint
and passed as individual params. This made code ugly and hard to
read. Instead, move code dealing with config to it's own module
config_utils. This module implements a config class which can
be used to create objects that are passed around to code that needs
it. Making the code much easier to read.
TODO: Move run_fuzzers code to new config system.
2021-01-28 12:10:57 -08:00
DavidKorczynski fdcd425579
sudoers: update fuzzers (#5058)
* updates to sudoers fuzzers.

* Updated the fuzzers for sudoers

* Updated the sudoers parse fuzzer

* Remove whitespace
2021-01-28 11:13:28 -08:00
Florian Mayer 00e8c6c5a7
perfetto: run fuzzers with UBSan (#5059)
Our build now supports this as well.
2021-01-28 18:39:29 +00:00
Stefan Bucur 41e24edb3c
Fix argument order in run_fuzzer command example. (#5060) 2021-01-28 08:53:18 -08:00
Abhishek Arya d45336243a
Simplify changed files logic. (#5056) 2021-01-27 17:43:15 -08:00
Abhishek Arya aeb1be4b6e
Fix get_changed_files in infra/ci. (#5055)
Fixes https://github.com/google/oss-fuzz/issues/5022
2021-01-28 11:06:04 +11:00
Abhishek Arya 23e24a4bac
Get list of changed files from branch head, instead of master. (#5048)
* Get list of changed files from branch head, instead of master.

Fixes https://github.com/google/oss-fuzz/issues/5022

* Add debug with subprocess.call.

* Try again debugginig.

* Try again

* Fix works!
2021-01-27 14:28:27 -08:00
Florian Mayer 21c3e09de9
Run fuzzers using AFL now we have fixed the build. (#5053)
Built and ran `python infra/helper.py check_build --engine afl perfetto ...` on all our fuzzers successfully.
2021-01-27 13:29:00 -08:00
antonrohr 5e2ea3e06b
Project Orbit: Fix Dockerfile (#5029)
* Project Orbit: Fix Dockerfile

This change is necessary to reflect the recent branch renaming on
github.com/google/orbit from master to main.

* Project Orbit: Fix build.sh

The build is fixed by manually setting flags for building llvm.

* Addressed review comments
2021-01-27 13:26:36 -08:00
DavidKorczynski 191d8a640c
sudoers: initial integration (#5052)
* Inital integration of sudoers

* make sudoers work with coverage

* Added main project maintainer to project.yaml

* Updated the configs.
2021-01-27 08:16:16 -08:00
Sergey Nizovtsev bd5b2a4f4d
tmux: take openbsd security list off from CC (#5051) 2021-01-27 05:48:45 -08:00
Abhishek Arya 65d4f8e5cc
Fix missed AFL++ changes in README.md 2021-01-26 15:29:02 -08:00
Abhishek Arya 89603f367a
Use afl++ in docs. (#5049) 2021-01-26 15:28:08 -08:00
Abhishek Arya 6fb0ce9366
Update project.yaml 2021-01-26 12:36:58 -08:00
jonathanmetzman d6ff0bfcdc
[CIFuzz] Seperate code for running fuzzers into own module: run_fuzzers.py (#5031)
TODO: Rename cifuzz.py to build_fuzzers.py
2021-01-26 08:32:41 -08:00
Abhishek Arya 3e112546fc
Update project.yaml 2021-01-25 22:43:44 -08:00
Abhishek Arya 54bfb5e406
Disable llvm_libcxx (unmaintained, bad fuzz targets) 2021-01-25 22:43:18 -08:00
AdamKorcz b6b66e6228
[cmake] Initial integration (#4917)
Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>
2021-01-25 11:46:30 -08:00
jonathanmetzman 665e489821
[afl++] Use AFL++ instead of AFL for fuzzing. (#5046) 2021-01-25 09:14:11 -08:00
jonathanmetzman 0ac841a1a4
Replace terms that are uninclusive. (#5045) 2021-01-25 08:41:34 -08:00
Oliver Chang 20b7246eae
Use more inclusive "blocklist" in code we control. (#5044) 2021-01-25 15:22:50 +11:00
neildhar 15070be0dd
[Hermes] Update CMake flag (#5043) 2021-01-25 13:06:20 +11:00
Florian Apolloner df4675970d
Move django-fuzzers to a new location. (#5041)
Updated the python version while on it.
2021-01-23 17:52:59 +00:00
Arash Partow d19281b9b8
[exprtk] Set maximum expression size evaluation phase (#5040) 2021-01-23 09:36:55 -08:00
Stefan Bucur 03fb1febc3
Explicitly use the compiler toolchain provided by the OSS-Fuzz environment. (#5039)
* Explicitly use the compiler toolchain provided by the OSS-Fuzz environment.

* Add script documentation.
2021-01-22 12:58:31 -08:00
Stefan Bucur 5f6c8adc7f
Add test project for the Bazel fuzzing rules. (#4936)
* Proof of concept for Bazel support in OSS Fuzz.

* Moved the Bazel rules project under a directory with a "-test" suffix, to better convey intent.

* Added copyright header.

* Update year in copyright note.

* Factor out the '_oss_fuzz' package suffix to bash var.

* Moving 'disabled' attribute at the end of the yaml file.

* Simplified Dockerfile due to base image update.
2021-01-22 07:43:10 -08:00
Antoine Pitrou 3fa5cb1624
[arrow] Add contact (#5033)
Add Kenta Murata to the list of secondary contacts.
2021-01-22 07:26:56 -08:00
Guido Vranken bbc1aa0a9d
[wolfssl] Add Botan to Cryptofuzz-based fuzzers for comparing outputs against (#5037)
* [wolfssl] Add Botan to Cryptofuzz-based fuzzers for comparing outputs against

* [wolfssl] Build Botan module in oracle mode

For more information see:
https://github.com/guidovranken/cryptofuzz/tree/master/modules/botan#using-botan-as-an-oracle
2021-01-22 07:06:02 -08:00
Oliver Chang 8fcb4659e3
Add a missing requirement for CI. (#5036) 2021-01-22 12:45:11 +11:00
jonathanmetzman 648242fdb4
[pylint] Enable no-member check (#5034) 2021-01-21 16:21:17 -08:00
Oliver Chang 5b51cfb00f
Fix build functions tests when invoked from unittest.TestSuite. (#5027) 2021-01-21 07:43:42 -08:00
DavidKorczynski 03de1c66f0
httplib2: initial integration. (#5000) 2021-01-21 03:54:46 -08:00
KOBAYASHI Shuji 8f99fa0170
Fix building mruby fails randomly (#4941)
Building mruby is done with `make clean all -j$(nproc)`, but build fails
randomly because `clean` and `all` run in parallel, and `clean` may be
executed after `all` starts.

Therefore, change it as follows.

* Remove `clean` because it seems to be unneeded in the first place.
* Use `rake` command because mruby uses Rake for builds (`Makefile` is a
  limited wrapper for calling `rake`).
* Use `-m` option to run builds in parallel.
* Remove `-j` option because build time seems to be almost the same even
  if `-j` option is specified.
2021-01-21 20:52:02 +11:00
Catena cyber 6a31e64d56
Ecc-diff-fuzzer is now ok with cryptopp (#5023)
As of cryptopp8.4 which fixed its bug
2021-01-21 08:01:33 +00:00
Abhishek Arya 0dc7c358d8
Remove unneeded ADD layers in base-builder. (#5028)
See https://github.com/google/oss-fuzz/issues/5012#issue-789981845
2021-01-20 22:18:03 -08:00
jonathanmetzman 492a4f2a1d
Run all tests when infra-tests is run from presubmit (#5026)
The previous approach of only running tests in changed directories is broken.
Tests can fail even when files outside of their directory are modified.
Also blocklist failing tests (see https://github.com/google/oss-fuzz/issues/5025) for why build tests are blocklisted.
2021-01-20 18:17:33 -08:00
Jonathan Metzman c5397ce3df fix nits 2021-01-20 18:00:33 -08:00
Jonathan Metzman e4195808a8 Explain why blacklisting base-sanitizer-libs-builder 2021-01-20 17:58:06 -08:00
jonathanmetzman f913f61129
[CIFuzz][coverage] Fix bug where unaffected fuzzers not removed + refactor
Previously region count was used instead of region covered.
This means that unaffected fuzzers only worked when a file wasn't linked 
into a fuzzer build (i.e. it was mostly broken).
Add tests to ensure this doesn't happen again.

Fixes: #5013

Also refactor.
1. Create a coverage module and move coverage functionality there.
2. Remove some overly-defensive programming. We probably aren't going to be given an invalid repo dir in coverage module.
3. Convert integration test to unittest.
4. Add helpers for: normalizing paths, getting coverage per file, determining if file is covered (which was done incorrectly before), and getting fuzzer stats dir url to make code easier to understand.
5. Add a class for getting coverage info.
6. Create an affected_fuzz_targets module and move functionality dealing with affected_fuzz_targets there.
7. Add is_fuzz_target_affected helper and log more.
8. Refer to fuzz targets as fuzz targets instead of fuzzers.
9. Move `url_join` to `utils`.
10. Move `GSUTIL_BASE_URL` to `utils`.
11. Add a util function for converting gs:// URLs into https:// urls.
12. Add a util function for removing prefixes (instead of using `.replace` which operates on the whole string not just the prefix).
13. Use more common style of mocking in unittests.
14. Delete unnecessary tests like '' when an invalid fuzzer is already tested.
15. Make constants capitalized in tests.
16. Better variable naming and consistency also reuse variables in tests.
17. Leave TODOs around code that looks suspicious.
18. Cleanup pylint directives.
19. Use single instead of double quotes.
2021-01-20 16:00:35 -08:00
Jonathan Metzman 34d86accb0 Remove unnecessary stuff 2021-01-20 15:58:18 -08:00
Jonathan Metzman 0dbdeae5d2 fmt/lnt 2021-01-20 15:55:25 -08:00
Jonathan Metzman adebf8ece3 implement blocklist 2021-01-20 15:52:20 -08:00
Jonathan Metzman 9ce539763f fix 2021-01-20 15:18:18 -08:00
jonathanmetzman 621729ffd7
Run lint on all python files (#5024)
Run lint on all python files. Linting only changed files is incorrect.
This is because an unchanged file can have a linting error from depending on a changed file.

We should do the same for tests as well. But we will skip this for now because:
1. Some tests have weird path hacks and need to be blocklisted.
2. We currently run tests using integration tests which take pretty long (~6 minutes on my desktop, probably longer on CI).
3. Even the unittests are not that fast to run (take about 30 seconds locally, 8 from CIFuzz, ~20 from build).
For now, allow all tests to be run if specified.

Also, lint all files so that presubmit passes.
Fixes https://github.com/google/oss-fuzz/issues/3320
Disable linting of dataflow_tracer.py due to https://github.com/google/oss-fuzz/pull/5024#discussion_r561310796
2021-01-20 13:57:53 -08:00
Jonathan Metzman 1193e419a3 Disable linting on dataflow_tracer 2021-01-20 13:40:50 -08:00