Commit Graph

4077 Commits

Author SHA1 Message Date
Sebastian Rasmussen e2e155fe0e
Update flags and enable new sanitizer (#3587)
* [ghostscript] Replace deprecated flag by current flag.

In old versions of Ghostscript the flag -dPARANOIDSAFER did
more checks than -dSAFER did. In modern versions the two flags
are identical. Moreover the flag -dPARANOIDSAFER has been
deprecated for a long time, and may be removed in the future.

In Ghostscript 9.50 and later -dSAFER is the default, and does
not have to be specified. To be able to test older yet still
modern Ghostscript versions without problems -dSAFER is used.

* [ghostscript] Force enable banding while rendering.

Ghostscript uses the set resolution to determine if banding should be
enabled during rendering, or not. Under normal circumstances documents
are rendered at maybe 600 DPI, but to conserve memory while running in
OSS-fuzz 200 DPI is used (-r200x200). To still test the banding code
used under normal circumstances banding is force enabled.

Moreover BufferSpace is used to determine the band height and thus the
number of bands. At 600 DPI this is normally 4Mbyte, so a reasonable
approximate at 200 DPI is 450k. Thus BufferSpace is also set.

* [ghostscript] Enable another sanitizer to see more issues.
2020-04-07 09:10:11 -07:00
DavidKorczynski c13b7e1c2e
Added more fuzzers for jsoncons. (#3586)
* Added more fuzzers for jsoncons.

* Fixed mistake in travis.

* removed bson fuzzer.
2020-04-07 07:28:44 -07:00
Max Moroz e3bb988d8a
[infra] Add build retry logic inside wait_for_build.py (#419). (#3585)
* [infra] Add build retry logic inside wait_for_build.py (#419).

* typo

* address comments by Oliver
2020-04-06 18:58:09 -07:00
Sebastian Rasmussen 302cf1550b
[jbig2dec] Limit allocations to 1Gbyte. (#3583)
Apparently the maximum memory usage is 2.5Gbyte so a limit of 3Gbyte
is to liberal. Set limit to 1Gbyte to make sure that any extra memory
used by the fuzzer is allowed. 1Gbyte ought to be enough for most real
world images decoded by jbig2dec.
2020-04-06 16:02:59 +10:00
Oliver Chang 1992503e5c
Fix incorrect variable name in bisector.py (#3581) 2020-04-06 11:28:46 +10:00
DavidKorczynski e587cc1868
Added jsoncons project. (#3568)
* Added jsoncons.

* Updated with correct email and with the fuzzers merged into master.

* Fixed docker file.
2020-04-03 19:47:58 -07:00
Aaron Boxer 7b356731ba
[grok] add dataflow support (#3580)
* grok: add dataflow support

* clean up in Dockerfile

* remove dataflow

Co-authored-by: Max Moroz <balalaikacr3w@gmail.com>
Co-authored-by: Max Moroz <mmoroz@chromium.org>
2020-04-03 17:28:05 -07:00
AdamKorcz 22420b8aa8
Adding Libucl project (#3573)
* Adding Libucl to OSS-fuzz

* Added a line to run Travis again

* Fix to build-error

* Added no-detect-leaks

* Added maintainer email address
2020-04-03 13:03:00 -07:00
Bhargava Shastry c06fadbbbf
libpng-proto: Add new proto fuzzer with custom mutator that changes unknown chunk to known chunk. (#3168) 2020-04-03 07:33:15 -07:00
Sebastian Rasmussen 96b94f6741
[ghostscript] Use official git server URL. (#3578)
This is the correct URL according to https://www.freetype.org/developer.html

This resolves the HTTP 502 error from the git server.
2020-04-03 07:29:23 -07:00
Bhargava Shastry 6101f85ba0
xmlsec: Install and link xmlsec against it (#3577) 2020-04-03 05:30:56 -07:00
Sebastian Rasmussen 3b695b10de
[ghostscript] Build using the bundled tiff and jpeg libraries. (#3579)
The previous configuration tried to use the system tiff library with
the bundled jpeg library. That configuration is not supported by
Ghostscript.
2020-04-03 05:30:19 -07:00
David Wong f5098035eb
[libra] Fix building failure (#3566)
After many days banging my head on FFI issues in rust,
I hereby present a fix to the issue.

Note that I've got some help, and I'm not sure I understand everything here.
But this is my understanding of what was not working, and how we fixed it.

The **problem** is that on Ubuntu 16 with llvm/clang 10,
we were **statically linking libc++** in [rocksdb][1]:

```rust
let stdlib = if tool.is_like_gnu() {
  "libstdc++.a"
} else if tool.is_like_clang() {
  "libc++.a"
} else {
  // Don't link to c++ statically on windows.
  return;
};

// ...

// remove lib prefix and .a postfix.
println!(
  "cargo:rustc-link-lib=static={}",
  &stdlib[3..stdlib.len() - 2]
);
```

This means that during building, when we reach building of rocksdb,
we import a number of symbols from libc++ (like [__muloti4][2])
that end up in the associated `.rlib` (rust obj file).

These symbols interestingly do not exist in libstdc++ which is used by gcc.
This is important because on linux (unlike mac), the rust toolchain is compiled with gcc.
So these intrinsics are not present in the linux rust toolchain,
and have been redeclared in the [compiler-builtins][3] crate.

So here is the problem:

* rust toolchain's defines these intrinsics functions
* libc++ defines these intrinsics functions

And the recipe for disaster:

* libc++ is statically linked in rocksdb, which means all the symbols are imported
* symbols in rocksdb's produced `.rlib` are colliding with the symbols from the rust toolchain `.rlib`

To fix this. Maybe we could have compiled the stuff with libstdc++?
But instead we:

1. removed the static linking
2. we linked libc++ at the very last moment via:
  ```rust
  RUSTFLAGS="-C link-arg=-L/usr/local/lib -C link-arg=-lc++"
  ```

At final linking time, the linker sees that the intrinsics are already defined in one of the `.rlib`
(produced by compiler-builtins) and so does not import these functions from libc++.
Actually, at this point it only statically link the functions that need to be linked.

It seems to work.

[1]: c79d2c2ac6/librocksdb_sys/build.rs (L115)
[2]: https://github.com/llvm-mirror/libcxx/blob/master/src/filesystem/int128_builtins.cpp
[3]: e578d47247/src/int/mul.rs (L107)
2020-04-02 14:28:09 -07:00
Kunal Tyagi fa2d9f5017
Adding PCL (#3574)
* Adding PCL

As per https://github.com/PointCloudLibrary/pcl/issues/3850

* Fix for the presubmit check
2020-04-02 14:01:01 -07:00
Leo Neat c04e4d288d
[CIFuzz] Documentation update (#3572)
* Documentation update

* Abhishek comments
2020-04-02 12:36:17 -07:00
DavidKorczynski 6f973ac806
Added xpdf project. (#3565)
* Added xpdf project.

* Tried linking with cxx.

* Since the executables build are not needed for the fuzzer build to succeed we can ignore the case where some test-apps are not build on the oss-fuzz platform.

* Ignore errors that dont impact the fuzzers.

* Updated the project file with language field.
2020-04-02 08:04:22 -07:00
Robert Löhning 711e015898
[qt] Add fuzzer for QRegularExpression (#3567) 2020-04-02 07:59:40 -07:00
Michael Niedermayer 8cfa643be8
[FFmpeg] Add fate samples for demuxer tests (#3564)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2020-04-01 16:51:53 -07:00
Gilles Peskine a49611cd5c
[bignum-fuzzer] Mbed TLS no longer has an mbed-crypto submodule (#3556)
[bignum-fuzzer] Mbed TLS no longer has an mbed-crypto submodule

Mbed TLS has gone back to being self-contained, without a separate
submodule for the cryptography part of the library. Revert the
bignum-fuzzer build scripts accordingly.

This reverts commit 54733ddc84.
2020-04-01 15:34:38 -07:00
Google AutoFuzz Team 5d818ce221
add new fuzzer and edit the Dockerfile and build (#3563) 2020-04-01 13:58:11 -07:00
Leo Neat 9ab8312c8c
Remove walk from utils.py (#3561)
Removing useless os.walk from utils.py.
2020-04-01 10:10:51 -07:00
Robert Löhning be91239b10
[qt] Use dictionaires and testcases from AFL's repo (#3562)
...instead of Ubuntu package
2020-03-31 14:35:39 -07:00
Catena cyber d99a6ac865
Change mail address for QuickJS project (#3560) 2020-03-31 09:31:14 -07:00
AdamKorcz 05b88d555b
[augeas] New fuzzer for Augeas (#3544)
* New fuzzer for Augeas

* Added license header

* fix the copyright year

Co-authored-by: Max Moroz <mmoroz@chromium.org>
2020-03-30 13:15:02 -07:00
Paweł Marczewski 0584ab45df
qubes-os: add fuzzers, update contact emails (#3554)
Qrexec [1] is a secure communication channel between virtual
machines in Qubes OS. We have fuzzers for some parts of its message
parsing code [2].

[1] https://www.qubes-os.org/doc/qrexec/
[2] https://github.com/QubesOS/qubes-core-qrexec/tree/master/fuzz
2020-03-30 10:17:19 -07:00
Abhishek Arya 3166399f80
Use sourceforge url for boost download in proxygen 2020-03-29 07:22:54 -07:00
Catena cyber a171716149
Adds people to suricta project (#3552) 2020-03-28 14:14:27 -07:00
Alex Gaynor e124654139
[imagemagick+graphicsmagick] Install po4a, which is now needed by xz (#3551) 2020-03-28 10:11:33 -07:00
Catena cyber 5b3190a2e9
Fix behavior in quickjs fuzz target (#3543)
* Fix behavior in quickjs fuzz target

* Includes stdbool.h in quickjs fuzz target

* Right include
2020-03-28 09:43:12 -07:00
Google AutoFuzz Team 25e9894f3f
[uriparser] Add uriparser as a start (#3524)
* add uriparser

* modified dockerfile and build.sh

* change email address

* Remove memory experimental flag (discouraged now)

Co-authored-by: Abhishek Arya <inferno@chromium.org>
2020-03-28 09:42:45 -07:00
Sebastian Rasmussen cd848bbd39
[ghostscript] Avoid printing raster output to stdout. (#3547)
Previously raster output data was printed on stdout. While this
is similar to how Ghostscript is run by CUPS's gstoraster filter it
unnecessarily prolongs execution time for many files.

Changing the output file still means that CUPS will be sent the
rasterized page and will be asked to convert it to a PWG raster which
it then dutifully writes to /dev/null. Thus no major difference is
expected in what code is executed in Ghostscript (or CUPS).

When run locally on a testcase found among the problematic files here:
gs://ghostscript-corpus.clusterfuzz-external.appspot.com/libFuzzer/
fuzzer target reported a timeout after 120 seconds before this commit.
After this commit the fuzzer target succeeded after about 3 seconds.
2020-03-27 13:32:10 -07:00
Lovell Fuller 4c67eacc39
libvips: ensure linker is aware of new gio dependency (#3534) 2020-03-27 10:03:22 -07:00
Catena cyber 522e7dc734
[suricata] Adds project suricata (#2533)
* Adds project suricata

* Updates lz4 to latest version

* remove sanitizers section -- harmless change to trigger Travis

* add language attribute

Co-authored-by: Max Moroz <mmoroz@chromium.org>
2020-03-27 00:33:24 -07:00
Tadeusz Struk c5b149af28
[tpm2-tss] disable swtpm tcti (#3541)
We need to disable all supported tctis for fuzzing.
This includes recently added swtpm.
Also switch the option from --enable-<module>=no
to preferred --disable-<module>

Signed-off-by: Tadeusz Struk <tstruk@gmail.com>
2020-03-26 08:55:25 -07:00
Christian Holler (:decoder) 4f72fc8fbe
Fix SM builds and use -gline-tables-only for building (#3542) 2020-03-26 08:29:48 -07:00
Catena cyber b100a222fb
[quickjs] Adds project quickjs (#3540)
* Adds project quickjs

* Activate ubsan for quickjs

* Loop for fuzz targets

* Revert "Activate ubsan for quickjs"

This reverts commit 55678410ad.

* Language for quickjs
2020-03-26 01:25:55 -07:00
DavidKorczynski 5a4cb61237
Added Dovecot project (#3502)
* Updated with improvements so we (0) build the /bintuls applications (1) targets for readelf (with sample ELF file) and cxxfilt and (3) added my email to the project yaml.

Fixed travis.

Removed whitespace and fixed commit email for google cla

Fixed travis.

Removed whitespace and fixed commit email for google cla

* Added Dovecot project.

* Updated the build script to reflect updates in Dovecot where we have integrated the build process into the actual project.

* Fixup emails.

* Updated build with new branch.

* Updated to new build options.

* Fix travis.
2020-03-25 12:07:00 -07:00
David Wong a4f67e3023
trying a distribution list as CC for libra (#3536) 2020-03-24 12:25:13 -07:00
Leo Neat 4c01a56101
OSSFUZZ to OSS_FUZZ (#3535)
Changing the helper variable OSSFUZZ_DIR name to OSS_FUZZ_DIR as per request in #3516.
2020-03-24 10:04:27 -07:00
tsdgeos cb09eba1ea
[poppler] Compile and use openjpeg2 (#3532)
There's code in poppler side for handling openjpeg2 so it's good that
that code gets fuzzed too
2020-03-20 21:12:04 -07:00
kyprizel c623ca54ea
propose ClickHouse to oss-fuzz (#3531) 2020-03-20 13:29:21 -07:00
alex 75e1d2d7ab
Add QEMU Project Description (#3526) 2020-03-20 13:27:56 -07:00
Robert Löhning 4b5f1e60b5
[docs] Fix where to look (#3529) 2020-03-20 12:03:55 -07:00
tsdgeos 77ef89c1da
Build lcms2 for poppler (#3528)
There's quite some code hidden behind
  #ifdef USE_CMS
so better to fuzz that code too
2020-03-20 08:45:47 -07:00
Lovell Fuller 3c28d2a860
Upgrade lcamtuf.coredump.cx to HTTPS, as it has been (#3527)
accepting only HTTPS connections since approx 14th March.

This allows the builds for guetzli, libjpeg-turbo,
libtiff and libvips to succeed again.
2020-03-20 07:50:16 -07:00
Catena cyber 67c9b30cf8
[binutils] Use mkstemp in binutils fuzz target (#3508)
* Use mkstemp in binutils fuzz target

* Adding License

* Remove file and do not abort
2020-03-19 09:32:38 -07:00
matclab 032c5cb41c
[s2opc] change cc addresses (#3523) 2020-03-19 09:09:39 -07:00
Robert Löhning 96caab94d8
[qt] Remove cherry-picking of ssl fuzz target (#3522)
It's in now.
2020-03-19 06:57:40 -07:00
Robert Löhning 6b3d83ee9a
[qt] Explicitly build with our own copy of md4c (#3521) 2020-03-18 16:50:47 -07:00
Max Moroz 51dd9a02cb
Enable dataflow build config for 22 more projects (#1632). (#3519)
* Enable dataflow build config for 22 more projects (#1632).

* suppress warnings in libteken

* move suppressing DFSAN_OPTIONS to the builder image
2020-03-18 13:12:58 -07:00