librdkafka supports fuzzing by way of Libfuzzer and OSS-Fuzz. This is ongoing work.
The easiest way to launch the fuzzers are to go through OSS-Fuzz. The only prerequisite to this is having Docker installed.
With Docker installed, the following commands will build and run the fuzzers in this directory:
git clone https://github.com/google/oss-fuzz
cd oss-fuzz
python3 infra/helper.py build_image librdkafka
python3 infra/helper.py build_fuzzers librdkafka
python3 infra/helper.py run_fuzzer librdkafka FUZZ_NAME
where FUZZ_NAME references the name of the fuzzer. Currently the only fuzzer we have is fuzz_regex
Notice that the OSS-Fuzz helper.py
script above will create a Docker image in which the code of librdkafka will be built. As such, depending on how you installed Docker, you may be asked to have root access (i.e. run with sudo
).
Download the reproducer file from the OSS-Fuzz issue tracker, then build
the failed test case by running make
in this directory, and then
run the test case and pass it the reproducer files, e.g:
$ make
$ ./fuzz_regex ~/Downloads/clusterfuzz-testcase-...
Note: Some test cases, such as fuzz_regex, requires specific librdkafka build configuration. See the test case source for details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。