Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make centipede a default fuzzer #9300

Merged
merged 16 commits into from
Feb 8, 2023
Merged

Make centipede a default fuzzer #9300

merged 16 commits into from
Feb 8, 2023

Conversation

jonathanmetzman
Copy link
Contributor

Related: #9299

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

1 similar comment
@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

3 similar comments
@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman jonathanmetzman marked this pull request as ready for review February 7, 2023 17:36
@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

not linking with CXX
wget
vlc
utf8proc
tpm2-tss
proftpd
opensips
opensc
netcdf
net-snmp
libpsl
fluent-bit
sound-open-firmware
curl
cyclonedds: not using CXX https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/c07b620e-6fbb-4281-808c-4c1716420f46;tab=detail?project=oss-fuzz

libtorrent: bad build
ffmpeg: no space

sed
poppler
lua
kimageformats
karchive
kcodecs

varnish: sub.c:96:6: error: implicit declaration of function 'closedir' is invalid in C99 [-Werror,-Wimplicit-function-declaration] https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/bc7a53f1-fd3b-4301-99c1-a7c4790eaf7e?project=oss-fuzz
pigweed - needs asan (asan centipede works)
nets-snmp https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/e67b2f63-e86d-44af-83f6-62a4d7cf5d72?project=oss-fuzz undefined reference to ceil
lxc

#23 - "build-check-centipede-none-x86_64": To reproduce, run:
Step #23 - "build-check-centipede-none-x86_64": Build checks failed.
Step #23 - "build-check-centipede-none-x86_64": ********************************************************************************
Step #23 - "build-check-centipede-none-x86_64": ERROR: 33.333333333333336% of fuzz targets seem to be broken. See the list above for a detailed information.
Step #23 - "build-check-centipede-none-x86_64": 
Step #23 - "build-check-centipede-none-x86_64": /usr/local/bin/run_fuzzer: line 225:  1234 Aborted                 bash -c "$CMD_LINE"
Step #23 - "build-check-centipede-none-x86_64": libc++abi: terminating with uncaught exception of type std::__1::__fs::filesystem::filesystem_error: filesystem error: in recursive_directory_iterator: No such file or directory ["/tmp/fuzz-lxc-flagfile-read_corpus"]
Step #23 - "build-check-centipede-none-x86_64": I0207 17:49:07.868296    1234 environment.cc:317] --timeout_per_batch default wasn't overridden; auto-computed to be 4616 sec (see --help for details)
Step #23 - "build-check-centipede-none-x86_64": I0207 17:49:07.868278    1234 config_file.cc:290] Command line was augmented; reparsing
Step #23 - "build-check-centipede-none-x86_64": new_arg=--binary=/tmp/not-out/tmprqrlzl7m/fuzz-lxc-flagfile-read 
Step #23 - "build-check-centipede-none-x86_64": old_arg=--binary=/tmp/not-out/tmprqrlzl7m/fuzz-lxc-config-read 
Step #23 - "build-check-centipede-none-x86_64": I0207 17:49:07.868274    1234 config_file.cc:137] Augmented argv arg:
Step #23 - "build-check-centipede-none-x86_64": new_arg=--corpus_dir=/tmp/fuzz-lxc-flagfile-read_corpus 
Step #23 - "build-check-centipede-none-x86_64": old_arg=--corpus_dir=/tmp/fuzz-lxc-config-read_corpus 

https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/db4745ce-fc2a-41b2-9deb-2333ff5d39d8?project=oss-fuzz
ecc-diff-fuzzer https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/a20dca04-527b-426b-a31d-83265b497ad0;step=22?project=oss-fuzz rust
cras rust
cfengine expression is not an integer https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/e3d8566a-f7cd-40fc-930d-99639313be58?project=oss-fuzz

realloc undefined reference
suricata https://pantheon.corp.google.com/cloud-build/builds;region=us-central1/fd9648c4-bf0b-45e4-aeca-9e66852e9141?project=oss-fuzz
spdk

il-mem.c:(.text.SCReallocFunc[SCReallocFunc]+0x27): undefined reference to `rpl_realloc'
Step #19 - "compile-centipede-address-x86_64": /usr/bin/ld: libsuricata_c.a(util-mem.o): in function `SCReallocFunc':```

old image
php

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

I fixed the sed cases except for poppler

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py lua kimageformats karchive kcodecs --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman
Copy link
Contributor Author

I think this is ready for review! I think most of the cases where I had to disable centipede will be too hard to fix in this round and that we can just land this for now.

@jonathanmetzman
Copy link
Contributor Author

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

Copy link
Contributor

@DonggeLiu DonggeLiu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@@ -4,6 +4,10 @@ language: c++
primary_contact: "[email protected]"
auto_ccs:
- "[email protected]"
fuzzing_engines:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it OK to skip these?
I thought we will need to support Centipede eventually...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another question:
I noticed that you disabled some projects, even though they build successfully in my PR (I highlighted them in the sheet, 537db38f is my build ID and 9b99ff13 is yours.)
I also tested curl on your branch locally, and found it can build and pass the bad_build_test.
Would you mind reminding me why they are disabled? Thanks!

Copy link
Contributor Author

@jonathanmetzman jonathanmetzman Feb 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it OK to skip these? I thought we will need to support Centipede eventually...

We don't need it now and we don't want build breakages now.

I noticed that you disabled some projects

Because they don't work without -lc++. I think we should consider adding that change at a later time.
There's about 10 projects that don't work without this, they are not doing what oss-fuzz asks and I'm not sure it's worth making a hack to support them. It might be better to force them to meet "our API" which requires using CXX to link.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's probably going to be a long time before projects won't be able to use oss-fuzz unless they support centipede.

@DonggeLiu
Copy link
Contributor

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

There is only one failure on openssl due to No space left.
Shall we disable it as well?

@DonggeLiu
Copy link
Contributor

/gcbrun trial_build.py all --sanitizer none address --fuzzing-engine centipede

@jonathanmetzman jonathanmetzman merged commit 2e6c7fa into master Feb 8, 2023
@jonathanmetzman jonathanmetzman deleted the centipede-default branch February 8, 2023 16:28
eamonnmcmanus pushed a commit to eamonnmcmanus/oss-fuzz that referenced this pull request Mar 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants