[libvirt PATCH v2 0/7] Enable sanitizers

Tim Wiederhake twiederh at redhat.com
Tue May 18 08:41:51 UTC 2021


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
> 
> 




More information about the libvir-list mailing list