size_t RunOne(const Unit &U);
void RunOneAndUpdateCorpus(Unit &U);
size_t RunOneMaximizeTotalCoverage(const Unit &U);
- size_t RunOneMaximizeFullCoverageSet(const Unit &U);
size_t RunOneMaximizeCoveragePairs(const Unit &U);
void WriteToOutputCorpus(const Unit &U);
void WriteUnitToFileWithPrefix(const Unit &U, const char *Prefix);
std::vector<Unit> Corpus;
std::unordered_set<std::string> UnitHashesAddedToCorpus;
- std::unordered_set<uintptr_t> FullCoverageSets;
// For UseCounters
std::vector<uint8_t> CounterBitmap;
public:
SimpleUserSuppliedFuzzer(FuzzerRandomBase *Rand, UserCallback Callback)
: UserSuppliedFuzzer(Rand), Callback(Callback) {}
- virtual void TargetFunction(const uint8_t *Data, size_t Size) {
- return Callback(Data, Size);
+
+ SimpleUserSuppliedFuzzer(FuzzerRandomBase *Rand, DeprecatedUserCallback Callback)
+ : UserSuppliedFuzzer(Rand), DeprecatedCallback(Callback) {}
+
+ virtual int TargetFunction(const uint8_t *Data, size_t Size) override {
+ if (Callback) return Callback(Data, Size);
+ DeprecatedCallback(Data, Size);
+ return 0;
}
private:
- UserCallback Callback;
+ DeprecatedUserCallback DeprecatedCallback = nullptr;
+ UserCallback Callback = nullptr;
};
}; // namespace fuzzer