[libvirt PATCH 0/6] Enable sanitizers

Tim Wiederhake posted 6 patches 2 weeks, 1 day ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20210503100146.14661-1-twiederh@redhat.com
.gitlab-ci.yml            | 35 +++++++++++++++++++++++++++++++++++
build-aux/syntax-check.mk |  2 +-
meson.build               |  8 +++++++-
src/libvirt_openvz.syms   |  2 ++
src/security/meson.build  |  1 -
tests/meson.build         |  2 +-
tests/virfilemock.c       | 12 ++++++------
7 files changed, 52 insertions(+), 10 deletions(-)

[libvirt PATCH 0/6] Enable sanitizers

Posted by Tim Wiederhake 2 weeks, 1 day ago
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.

Cheers,
Tim

Tim Wiederhake (6):
  meson: Allow larger stack frames when instrumenting
  meson: Allow undefined symbols when sanitizers are enabled
  tests: virfilemock: realpath: Allow non-null second parameter
  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               |  8 +++++++-
 src/libvirt_openvz.syms   |  2 ++
 src/security/meson.build  |  1 -
 tests/meson.build         |  2 +-
 tests/virfilemock.c       | 12 ++++++------
 7 files changed, 52 insertions(+), 10 deletions(-)

-- 
2.26.3