Commits


luzer: disable Lua tracing Related to #18


luzer: break is not needed


luzer: manage debug hook in a fuzzing function Enable Lua debug hook right before calling `TestOneInput` function and disable it right after returning from `TestOneInput`.


cmake: set default test timeout in preset 1. https://cmake.org/cmake/help/latest/prop_test/TIMEOUT.html 2. https://cmake.org/cmake/help/latest/manual/ctest.1.html#cmdoption-ctest-timeout


luzer: replace luaL_error with abort We cannot use `luaL_error` if Lua state is not initialized.


luzer: fix stack overflow due to recursive traceback Lua 5.1 has no support of `luaL_traceback` function. Previously, it was implemented using Lua function `debug.traceback` and this leads to recursive calls and finished with stack overflow. The patch backports implementation of `luaL_traceback` from a late Lua versions.


luzer: add missed newlines to messages


cmake: fix searching Clang RT luzer module requires linking with a library `clang_rt.fuzzer_no_main-x86_64` that is a part of a Clang runtime. Without linking with it Lua runtime will report an error right on loading `luzer.so`: lua5.1: error loading module 'luzer' from file './luzer.so': ./luzer.so: undefined symbol: __sanitizer_cov_8bit_counters_init The patch adds a module that composes a path to Clang runtime libraries and adds this path to a library search paths. I suppose in some cases introduced CMake function may fail. One can pass a path to a directory with Clang RT manually using environment variable CLANG_RT_LIB_DIR. In a usual case symbol __sanitizer_cov_8bit_counters_init is added by compiler on instrumentation when compiler option -fsanitize-coverage=inline-8bit-counters is specified [1]. 1. https://clang.llvm.org/docs/SanitizerCoverage.html


ci: fix clang version inconsistency Fixes #15


luzer: disable instrumentation of internal functions Before this commit, internal functions were marked with attributes to protect them from Address Sanitizer. This was meant that Clang still instrumented code with coverage collection, slowing down hot path AND unstabilizing fuzzing process by damaging real coverage target. Fixes #11


luzer: fix undefined symbol on loading module Fixes #6


mutator: get rid of custom libFuzzer mutator libFuzzer custom mutator for Lua has been moved to lua-c-api-tests [1]. 1. https://github.com/ligurio/lua-c-api-tests


docs: add a page with trophies


doc: update a list of build dependencies


readme: add examples


luzer: update a message


luzer: fix code style


ci: update publishing steps


docs: add an initial version


examples: add an initial version


mutator: add an initial version


Initial version