[PATCH bpf v2 00/15] selftests/bpf: Fixes for userspace ASAN

Ihor Solodrai posted 15 patches 1 month, 2 weeks ago
There is a newer version of this series
tools/bpf/resolve_btfids/Makefile             |  7 +-
tools/bpf/resolve_btfids/main.c               | 81 ++++++++++++-------
tools/testing/selftests/bpf/DENYLIST.asan     |  3 +
tools/testing/selftests/bpf/Makefile          | 13 ++-
.../selftests/bpf/benchs/bench_trigger.c      | 14 ++--
tools/testing/selftests/bpf/bpftool_helpers.c | 19 ++++-
.../selftests/bpf/jit_disasm_helpers.c        | 18 ++---
.../bpf/prog_tests/cgrp_local_storage.c       |  4 +-
.../testing/selftests/bpf/prog_tests/dynptr.c |  5 +-
.../selftests/bpf/prog_tests/fd_array.c       |  4 +-
.../selftests/bpf/prog_tests/htab_update.c    |  1 +
.../bpf/prog_tests/kmem_cache_iter.c          |  7 +-
.../bpf/prog_tests/kprobe_multi_test.c        | 12 ++-
.../selftests/bpf/prog_tests/lwt_seg6local.c  |  2 +-
.../selftests/bpf/prog_tests/sockmap_basic.c  | 28 +++----
.../selftests/bpf/prog_tests/sockmap_listen.c |  2 +-
.../bpf/prog_tests/struct_ops_private_stack.c |  4 +-
.../selftests/bpf/prog_tests/tc_opts.c        |  6 +-
.../selftests/bpf/prog_tests/test_sysctl.c    | 14 +++-
.../selftests/bpf/prog_tests/test_tc_tunnel.c |  5 +-
.../selftests/bpf/prog_tests/test_xsk.c       | 24 +++++-
.../bpf/prog_tests/uprobe_multi_test.c        |  1 +
.../selftests/bpf/prog_tests/verifier_log.c   |  2 +-
.../selftests/bpf/prog_tests/xdp_metadata.c   |  4 +-
tools/testing/selftests/bpf/test_progs.c      |  8 +-
tools/testing/selftests/bpf/testing_helpers.c |  1 +
tools/testing/selftests/bpf/trace_helpers.c   | 23 +++---
tools/testing/selftests/bpf/trace_helpers.h   | 11 ++-
tools/testing/selftests/bpf/veristat.c        |  2 +
29 files changed, 206 insertions(+), 119 deletions(-)
create mode 100644 tools/testing/selftests/bpf/DENYLIST.asan
[PATCH bpf v2 00/15] selftests/bpf: Fixes for userspace ASAN
Posted by Ihor Solodrai 1 month, 2 weeks ago
This series includes various fixes aiming to enable test_progs run
with userspace address sanitizer on BPF CI.

The first patch fixes the selftests/bpf/test_progs build with:

    SAN_CFLAGS="-fsanitize=address -fno-omit-frame-pointer"

The subsequent patches fix bugs reported by the address sanitizer on
attempt to run the tests.

---

v1->v2:
  - rebase on bpf (v1 was targeting bpf-next)
  - add ASAN flag handling in selftests/bpf/Makefile (Eduard)
  - don't override SIGSEGV handler in test_progs with ASAN (Eduard)
  - add error messages in detect_bpftool_path (Mykyta)
  - various nits (Eduard, Jiri, Mykyta, Alexis)

v1: https://lore.kernel.org/bpf/20260212011356.3266753-1-ihor.solodrai@linux.dev/

---

Ihor Solodrai (15):
  selftests/bpf: Pass through build flags to bpftool and resolve_btfids
  resolve_btfids: Fix memory leaks reported by ASAN
  selftests/bpf: Add DENYLIST.asan
  selftests/bpf: Refactor bpf_get_ksyms() trace helper
  selftests/bpf: Fix memory leaks in tests
  selftests/bpf: Fix cleanup in check_fd_array_cnt__fd_array_too_big()
  veristat: Fix a memory leak for preset ENUMERATOR
  selftests/bpf: Fix use-after-free in xdp_metadata test
  selftests/bpf: Fix double thread join in uprobe_multi_test
  selftests/bpf: Fix resource leaks caused by missing cleanups
  selftests/bpf: Free bpf_object in test_sysctl
  selftests/bpf: Fix array bounds warning in jit_disasm_helpers
  selftests/bpf: Fix out-of-bounds array access bugs reported by ASAN
  selftests/bpf: Check BPFTOOL env var in detect_bpftool_path()
  selftests/bpf: Don't override SIGSEGV handler with ASAN

 tools/bpf/resolve_btfids/Makefile             |  7 +-
 tools/bpf/resolve_btfids/main.c               | 81 ++++++++++++-------
 tools/testing/selftests/bpf/DENYLIST.asan     |  3 +
 tools/testing/selftests/bpf/Makefile          | 13 ++-
 .../selftests/bpf/benchs/bench_trigger.c      | 14 ++--
 tools/testing/selftests/bpf/bpftool_helpers.c | 19 ++++-
 .../selftests/bpf/jit_disasm_helpers.c        | 18 ++---
 .../bpf/prog_tests/cgrp_local_storage.c       |  4 +-
 .../testing/selftests/bpf/prog_tests/dynptr.c |  5 +-
 .../selftests/bpf/prog_tests/fd_array.c       |  4 +-
 .../selftests/bpf/prog_tests/htab_update.c    |  1 +
 .../bpf/prog_tests/kmem_cache_iter.c          |  7 +-
 .../bpf/prog_tests/kprobe_multi_test.c        | 12 ++-
 .../selftests/bpf/prog_tests/lwt_seg6local.c  |  2 +-
 .../selftests/bpf/prog_tests/sockmap_basic.c  | 28 +++----
 .../selftests/bpf/prog_tests/sockmap_listen.c |  2 +-
 .../bpf/prog_tests/struct_ops_private_stack.c |  4 +-
 .../selftests/bpf/prog_tests/tc_opts.c        |  6 +-
 .../selftests/bpf/prog_tests/test_sysctl.c    | 14 +++-
 .../selftests/bpf/prog_tests/test_tc_tunnel.c |  5 +-
 .../selftests/bpf/prog_tests/test_xsk.c       | 24 +++++-
 .../bpf/prog_tests/uprobe_multi_test.c        |  1 +
 .../selftests/bpf/prog_tests/verifier_log.c   |  2 +-
 .../selftests/bpf/prog_tests/xdp_metadata.c   |  4 +-
 tools/testing/selftests/bpf/test_progs.c      |  8 +-
 tools/testing/selftests/bpf/testing_helpers.c |  1 +
 tools/testing/selftests/bpf/trace_helpers.c   | 23 +++---
 tools/testing/selftests/bpf/trace_helpers.h   | 11 ++-
 tools/testing/selftests/bpf/veristat.c        |  2 +
 29 files changed, 206 insertions(+), 119 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/DENYLIST.asan

-- 
2.53.0