On 5/6/21 5:08 PM, 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(-)
> 

Reviewed-by: Michal Privoznik <mpriv...@redhat.com>

and pushed.

Michal

Reply via email to