1. 03 Aug, 2018 9 commits
    • fuzzers: avoid use of libgit2 internals in packfile_raw · de53972f
      The packfile_raw fuzzer is using some internal APIs from libgit2, which
      makes it hard to compile it as part of the oss-fuzz project. As oss-fuzz
      requires us to link against the C++ FuzzingEngine library, we cannot use
      "-DBUILD_FUZZERS=ON" directly but instead have to first compile an
      object from our fuzzers and then link against the C++ library. Compiling
      the fuzzer objects thus requires an external invocation of CC, and we
      certainly don't want to do further black magic by adding libgit2's
      private source directory to the header include path.
      
      To fix the issue, convert the code to not use any internal APIs. Besides
      some headers which we have to add now, this also requires us to change
      to the hashing function of the ODB. Note that this will change the
      hashing result, as we have previously not prepended the object header to
      the data that is to be hashed. But this shouldn't matter in practice, as
      we don't care for the hash value anyway.
      Patrick Steinhardt committed
    • cmake: remove USE_SANITIZER and USE_COVERAGE options · 12804c46
      Both the USE_SANITIZER and USE_COVERAGE options are convenience options
      that turn on a set of CFLAGS. Despite our own set of CFLAGS required to
      build libgit2, we have no real business to mess with them, though, as
      they can easily be passed in by the user via specifying the CFLAGS
      environment variable. The reasoning behind not providing them is that as
      soon as we start adding those for some usecases, users might ask for
      other sets of CFLAGS catering to their specific need in another usecase.
      Thus, we do not want to support them here.
      Patrick Steinhardt committed
    • cmake: remove need to add "-fsanitize=fuzzer" flag for fuzzers · bf3382d5
      Right now, users are being instrucded to add the
      "-DCMAKE_EXE_LINKER_FLAGS=-fsanitize=fuzzer" flag when they want to
      build our fuzzers. This is error-prone and user unfriendly. Instead,
      just add the flag to our fuzzers' build instructions so that it happens
      automatically. Adjust the README accordingly.
      Patrick Steinhardt committed
    • cmake: error out if required C flags are not supported · 186a7ba5
      We do want to notify users compiling our source code early on if they
      try to use C flags which aren't supported. Add a new macro `AddCFlag`,
      which results in a fatal error in case the flag is not supported, and
      use it for our fuzzing flags.
      Patrick Steinhardt committed
    • cmake: use C90 standard for our fuzzing targets · 07cf8b38
      Like all our other internal code, we want to force the use of C90 for
      our fuzzers. Do so by setting the "C_STANDARD" property of our fuzzing
      targets.
      Patrick Steinhardt committed
    • fuzzers: rename "fuzz" directory to match our style · 59328ed8
      Our layout uses names like "examples" or "tests" which is why the "fuzz"
      directory doesn't really fit in here. Rename the directory to be called
      "fuzzers" instead. Furthermore, we rename the fuzzer "fuzz_packfile_raw"
      to "packfile_raw_fuzzer", which is also in line with the already
      existing fuzzer at google/oss-fuzz.
      
      While at it, rename the "packfile_raw" fuzzer to instead just be called
      "packfile" fuzzer.
      Patrick Steinhardt committed
    • fuzzers: add build support and instructions · 60e610a2
      This change adds support for building a fuzz target for exercising the
      packfile parser, as well as documentation. It also runs the fuzzers in
      Travis to avoid regressions.
      lhchavez committed
  2. 02 Aug, 2018 8 commits
  3. 30 Jul, 2018 2 commits
  4. 29 Jul, 2018 3 commits
  5. 28 Jul, 2018 2 commits
  6. 27 Jul, 2018 2 commits
  7. 26 Jul, 2018 14 commits