Ping. On Thu, 2021-05-06 at 17:08 +0200, Tim Wiederhake wrote: > This series enables and adds AddressSanitizer and > UndefinedBehaviorSanitizer > builds to the CI. > > See: > https://clang.llvm.org/docs/AddressSanitizer.html and > https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html > > These sanitizers already found some issues in libvirt, e.g. > 4eb7c621985dad4de911ec394ac628bd1a5b29ab, > 1294de209cee6643511265c7e2d4283c047cf652, > 8b8c91f487592c6c067847ca59dde405ca17573f, or > 1c34211c22de28127a509edbf2cf2f44cb0d891e. > > There exist two more relevant sanitizers, ThreadSanitizer and > MemorySanitizer. > Unfortunately, those two require an instrumented build of all > dependencies, > including libc, to work correctly. > > Note that clang and gcc have different implementations of these > sanitizers, > hence the introduction of two new jobs to the CI. The latter one > issues a > warning about the use of LD_PRELOAD in `virTestMain`, which in this > particular case can be safely ignored by setting `ASAN_OPTIONS` to > verify_asan_link_order=0` for the gcc build. > > Changes since V1: > > Incorporated changes suggested by Pavel, except for #6 (now #7): The > statement > in > https://listman.redhat.com/archives/libvir-list/2021-May/msg00070.html > on > the sanitizers working with Fedora 33 is wrong, I was fooled by > caching. The > bug described there is present in Fedora 33, 34, and Rawhide. > > Cheers, > Tim > > Tim Wiederhake (7): > meson: Allow larger stack frames when instrumenting > meson: Allow undefined symbols when sanitizers are enabled > tests: virfilemock: realpath: Allow non-null second parameter > openvz: Add missing symbols to libvirt_openvz.syms > tests: openvzutilstest: Remove duplicate linking with > libvirt_openvz.a > virt-aa-helper: Remove duplicate linking with src/datatypes.o > ci: Enable address and undefined behavior sanitizers > > .gitlab-ci.yml | 35 +++++++++++++++++++++++++++++++++++ > build-aux/syntax-check.mk | 2 +- > meson.build | 14 ++++++++++---- > src/libvirt_openvz.syms | 2 ++ > src/security/meson.build | 1 - > tests/meson.build | 2 +- > tests/virfilemock.c | 20 ++++++++++++-------- > 7 files changed, 61 insertions(+), 15 deletions(-) > > -- > 2.26.3 > >