diff --git a/.travis.yml b/.travis.yml index 2dac1b6..c4140d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -70,9 +70,16 @@ install: before_script: - mkdir -p build && cd build -- cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE +- if [ "$CXX" = "clang++-8"; then + # Build UBSan binary + export CXXFLAGS="-fsanitize=undefined -fsanitize-coverage=bb,trace-pc-guard"; + cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSNAPPY_REQUIRE_${CPU_LEVEL}=ON - -DSNAPPY_BUILD_FUZZERS=ON + -DSNAPPY_BUILD_FUZZERS=ON; + else + cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE + -DSNAPPY_REQUIRE_${CPU_LEVEL}=ON; + fi - cmake --build . - cd .. diff --git a/snappy-compress-uncompress-fuzzer.cc b/snappy-compress-uncompress-fuzzer.cc index b9fb3ac..273852d 100644 --- a/snappy-compress-uncompress-fuzzer.cc +++ b/snappy-compress-uncompress-fuzzer.cc @@ -53,14 +53,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) assert(compressed_len == compressed_out.size()); assert(compressed_len <= snappy::MaxCompressedLength(input.size())); assert(snappy::IsValidCompressedBuffer( - compressed_out.data(), - compressed_out.size())); + compressed_out.data(), + compressed_out.size())); size_t uncompressed_len = 0; bool getcomp_len_success = snappy::GetUncompressedLength( - compressed_out.data(), - compressed_out.size(), - &uncompressed_len); + compressed_out.data(), + compressed_out.size(), + &uncompressed_len); // Check that GetUncompressedLength() does not return a very large // value (1 MB) on success. assert(!getcomp_len_success || uncompressed_len < (1 << 20)); @@ -68,9 +68,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) // Uncompress string uncompressed_out; bool uncompress_success = snappy::Uncompress( - compressed_out.data(), - compressed_out.size(), - &uncompressed_out); + compressed_out.data(), + compressed_out.size(), + &uncompressed_out); assert(uncompress_success); assert(input == uncompressed_out); diff --git a/snappy-uncompress-fuzzer.cc b/snappy-uncompress-fuzzer.cc index 68a0097..a516cc9 100644 --- a/snappy-uncompress-fuzzer.cc +++ b/snappy-uncompress-fuzzer.cc @@ -45,9 +45,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) size_t uncompressed_len = 0; bool getcomp_len_success = snappy::GetUncompressedLength( - input.data(), - input.size(), - &uncompressed_len); + input.data(), + input.size(), + &uncompressed_len); // Check that GetUncompressedLength() does not return a very large // value (1 MB) on success. assert(!getcomp_len_success || uncompressed_len < (1 << 20)); @@ -55,9 +55,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) // Uncompress string uncompressed_out; bool uncompress_success = snappy::Uncompress( - input.data(), - input.size(), - &uncompressed_out); + input.data(), + input.size(), + &uncompressed_out); assert(uncompress_success); return 0;