diff --git a/src/libfuzzer/libfuzzer_mutator.cc b/src/libfuzzer/libfuzzer_mutator.cc index 34d144c..b671fd4 100644 --- a/src/libfuzzer/libfuzzer_mutator.cc +++ b/src/libfuzzer/libfuzzer_mutator.cc @@ -14,6 +14,8 @@ #include "src/libfuzzer/libfuzzer_mutator.h" +#include + #include #include @@ -64,6 +66,7 @@ template T MutateValue(T v) { size_t size = LLVMFuzzerMutate(reinterpret_cast(&v), sizeof(v), sizeof(v)); + __msan_unpoison(reinterpret_cast(&v), size); memset(reinterpret_cast(&v) + size, 0, sizeof(v) - size); return v; } @@ -93,6 +96,7 @@ std::string Mutator::MutateString(const std::string& value, result.resize(std::max(1, new_size)); result.resize(LLVMFuzzerMutate(reinterpret_cast(&result[0]), value.size(), result.size())); + __msan_unpoison(reinterpret_cast(&result[0]), result.size()); return result; }