Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add --enable-asan and --enable-ubsan switches #12928

Merged
merged 1 commit into from
Feb 3, 2022
Merged

Add --enable-asan and --enable-ubsan switches #12928

merged 1 commit into from
Feb 3, 2022

Commits on Jan 28, 2022

  1. Add --enable-asan and --enable-ubsan switches

    `configure` now accepts `--enable-asan` and `--enable-ubsan` switches
    which results in passing `-fsanitize=address`
    and `-fsanitize=undefined`, respectively, to the compiler. Those
    flags are enabled in GitHub workflows for ZTS and zloop. Errors
    reported by both instrumentations are corrected, except for:
    
    - Memory leak reporting is (temporarily) suppressed. The cost of
      fixing them is relatively high compared to the gains.
    
    - Checksum computing functions in `module/zcommon/zfs_fletcher*`
      have UBSan errors suppressed. It is completely impractical
      to enforce 64-byte payload alignment there due to performance
      impact.
    
    - There's no ASan heap poisoning in `module/zstd/lib/zstd.c`. A custom
      memory allocator is used there rendering that measure
      unfeasible.
    
    - Memory leaks detection has to be suppressed for `cmd/zvol_id`.
      `zvol_id` is run by udev with the help of `ptrace(2)`. Tracing is
      incompatible with memory leaks detection.
    
    Signed-off-by: szubersk <szuberskidamian@gmail.com>
    szubersk committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    45bdd45 View commit details
    Browse the repository at this point in the history