* [util-linux] cover mnt_table_parse_stream
Waiting for https://github.com/karelzak/util-linux/pull/1068
* temporarily point OSS-Fuzz to evverx/util-linux
* make sure it can be built with sanitizer=coverage
Integrating the first cloud function i implemented which syncs the project list from github and uploads the list to cloud datastore, which will be used by another cloud function to request builds.
Co-authored-by: Kabeer Seth <kabeerseth@google.com>
Temporary fix for sanitizer validation.
Our sanitizer validation is hacky and isn't using pyyaml to actually
parse the project.yaml file. Temporarily work around #3996 by not
validating sanitizers if no sanitizers are specified in project.yaml.
* Revert "Revert "[CIFuzz] Add support for different sanitizers (#3516)""
This reverts commit c580d0d626.
* cifuzz: pass "sanitizer" to the "run fuzzer" step
It's a follow-up to https://github.com/google/oss-fuzz/pull/3516 that
should fix https://github.com/google/oss-fuzz/issues/3727.
* [cifuzz] drop a $
That's another follow-up to #3516 that should help to pass sanitizer correctly.
Otherwise, it always falls back to address with:
2020-06-11 21:10:14,852 - root - INFO - $address is not a project sanitizer, defaulting to address.
This is a best effort attempt to parse the relevant copy command from
the Dockerfile.
Also add a main function to build_specified_commit to make it easier to
test.
When build log is not found, skip it and avoid 404.
Fixes exception
```
Traceback (most recent call last):
File "oss-fuzz/infra/gcb/builds_status.py", line 243, in <module>
main()
File "oss-fuzz/infra/gcb/builds_status.py", line 228, in main
status_filename='status.json')
File "oss-fuzz/infra/gcb/builds_status.py", line 159, in update_build_status
last_build = find_last_build(builds, project, build_tag_suffix)
File "oss-fuzz/infra/gcb/builds_status.py", line 102, in find_last_build
log.download_to_filename(f.name)
File "/var/jenkins_home/workspace/infra/builds_status/ENV/local/lib/python2.7/site-packages/google/cloud/storage/blob.py", line 565, in download_to_filename
file_obj, client=client, start=start, end=end)
File "/var/jenkins_home/workspace/infra/builds_status/ENV/local/lib/python2.7/site-packages/google/cloud/storage/blob.py", line 537, in download_to_file
_raise_from_invalid_response(exc)
File "/var/jenkins_home/workspace/infra/builds_status/ENV/local/lib/python2.7/site-packages/google/cloud/storage/blob.py", line 1873, in _raise_from_invalid_response
raise exceptions.from_http_response(error.response)
google.api_core.exceptions.NotFound: 404 GET https://www.googleapis.com/download/storage/v1/b/oss-fuzz-gcb-logs/o/log-9fca5dab-72bf-4970-9557-86b93ede51e0.txt?alt=media: No such object: oss-fuzz-gcb-logs/log-9fca5dab-72bf-4970-9557-86b93ede51e0.txt
Build step 'Execute shell' marked build as failure
Finished: FAILURE
```
Make some other changes:
1. Refactor fuzz_target.py and fuzz_target_test.py
2. Introduce pyfakefs and parameterized as dependencies and use them
in tests.
3. Fix infra-tests in CI so that they use installed dependencies
* Simplify rust project setup.
- Add rust and cargo-fuzz in base builder.
- Set RUSTC_BOOSTRAP to make ASan available.
- Set RUSTFLAGS and C,CXXFLAGS properly.
Fix clang updating script to actually update clang based on Chrome's
With this change, clang (llvm-project) will be updated from:
e84b7a5fe230e42b8e6fe451369874a773bf1867
to Chrome's current version:
99ac9ce7016d701b43b8f0c308dc3463da57d983.
This commit fixes two bad bugs:
1. Using the output of a command instead of the return code.
2. Using ! to determine whether the command succeeded ! in bash
will do the same thing for 0 and 1.
These bugs were hidden by OUR_LLVM_REVISION which we traditionally
set to the last commit we rolled back to. If this were a comment
instead of stored as a variable that is not supposed to be used
unless FORCE_OUR_REVISION is set, this bug probably could have
been caught earlier. Instead, the code always used the value
provided by this variable.
Fixes https://github.com/google/oss-fuzz/issues/3805
Currently we use Github action's inputs as inputs to cifuzz.
This means we need to do an extra step to convert each input into
an env var so our scripts can actually use it.
This is pretty bug prone and unnecessary, we should probably
get rid of this abstraction and switch to encouraging devs to set
the env vars directly.