问题描述
在 libfuzzer 中创建的单例是“每次运行一个实例”还是“每次运行一个实例”?
示例:
// singleton example
int& Singleton() {
static int a = 0;
return a;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data,size_t Size) {
// Usage example
Singleton() += Size;
}
- 1 次运行:大小 = 10。Singleton() == 10
- 2 次运行:大小 = 20。Singleton() == 20(“每次运行一个实例”)或 Singleton() == 30(“每次运行一个实例”)
解决方法
迟到的答案 - 每多次运行将有一个实例。