public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ihor Solodrai <ihor.solodrai@linux.dev>
To: "Alexei Starovoitov" <ast@kernel.org>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Eduard Zingerman" <eddyz87@gmail.com>,
	"Jiri Olsa" <olsajiri@gmail.com>,
	"Mykyta Yatsenko" <yatsenko@meta.com>,
	"Alexis Lothoré" <alexis.lothore@bootlin.com>
Cc: Amery Hung <ameryhung@gmail.com>,
	bpf@vger.kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@meta.com
Subject: [PATCH bpf v4 20/20] selftests/bpf: Don't override SIGSEGV handler with ASAN
Date: Mon, 23 Feb 2026 11:11:18 -0800	[thread overview]
Message-ID: <20260223191118.655185-3-ihor.solodrai@linux.dev> (raw)
In-Reply-To: <20260223191118.655185-1-ihor.solodrai@linux.dev>

test_progs has custom SIGSEGV handler, which interferes with the
address sanitizer [1]. Add an #ifndef to avoid this.

Additionally, declare an __asan_on_error() to dump the test logs in
the same way it happens in the custom SIGSEGV handler.

[1] https://lore.kernel.org/bpf/73d832948b01dbc0ebc60d85574bdf8537f3a810.camel@gmail.com/

Acked-by: Mykyta Yatsenko <yatsenko@meta.com>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
---
 tools/testing/selftests/bpf/test_progs.c | 36 +++++++++++++++++-------
 1 file changed, 26 insertions(+), 10 deletions(-)

diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c
index d1418ec1f351..0929f4a7bda4 100644
--- a/tools/testing/selftests/bpf/test_progs.c
+++ b/tools/testing/selftests/bpf/test_progs.c
@@ -1261,14 +1261,8 @@ int get_bpf_max_tramp_links(void)
 	return ret;
 }
 
-#define MAX_BACKTRACE_SZ 128
-void crash_handler(int signum)
+static void dump_crash_log(void)
 {
-	void *bt[MAX_BACKTRACE_SZ];
-	size_t sz;
-
-	sz = backtrace(bt, ARRAY_SIZE(bt));
-
 	fflush(stdout);
 	stdout = env.stdout_saved;
 	stderr = env.stderr_saved;
@@ -1277,12 +1271,32 @@ void crash_handler(int signum)
 		env.test_state->error_cnt++;
 		dump_test_log(env.test, env.test_state, true, false, NULL);
 	}
+}
+
+#define MAX_BACKTRACE_SZ 128
+
+void crash_handler(int signum)
+{
+	void *bt[MAX_BACKTRACE_SZ];
+	size_t sz;
+
+	sz = backtrace(bt, ARRAY_SIZE(bt));
+
+	dump_crash_log();
+
 	if (env.worker_id != -1)
 		fprintf(stderr, "[%d]: ", env.worker_id);
 	fprintf(stderr, "Caught signal #%d!\nStack trace:\n", signum);
 	backtrace_symbols_fd(bt, sz, STDERR_FILENO);
 }
 
+#ifdef __SANITIZE_ADDRESS__
+void __asan_on_error(void)
+{
+	dump_crash_log();
+}
+#endif
+
 void hexdump(const char *prefix, const void *buf, size_t len)
 {
 	for (int i = 0; i < len; i++) {
@@ -1944,13 +1958,15 @@ int main(int argc, char **argv)
 		.parser = parse_arg,
 		.doc = argp_program_doc,
 	};
+	int err, i;
+
+#ifndef __SANITIZE_ADDRESS__
 	struct sigaction sigact = {
 		.sa_handler = crash_handler,
 		.sa_flags = SA_RESETHAND,
-		};
-	int err, i;
-
+	};
 	sigaction(SIGSEGV, &sigact, NULL);
+#endif
 
 	env.stdout_saved = stdout;
 	env.stderr_saved = stderr;
-- 
2.53.0


  parent reply	other threads:[~2026-02-23 19:11 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-23 19:07 [PATCH bpf v4 00/20] selftests/bpf: Fixes for userspace ASAN Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 01/20] selftests/bpf: Add simple strscpy() implementation Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 02/20] selftests/bpf: Replace strcpy() calls with strscpy() Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 03/20] selftests/bpf: Replace strncpy() " Ihor Solodrai
2026-02-23 22:28   ` Eduard Zingerman
2026-02-23 22:32     ` Ihor Solodrai
2026-02-23 22:59       ` Eduard Zingerman
2026-02-23 19:07 ` [PATCH bpf v4 04/20] selftests/bpf: Use strscpy in bpftool_helpers.c Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 05/20] selftests/bpf: Use memcpy() for bounded non-NULL-terminated copies Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 06/20] selftests/bpf: Pass through build flags to bpftool and resolve_btfids Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 07/20] resolve_btfids: Fix memory leaks reported by ASAN Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 08/20] selftests/bpf: Add DENYLIST.asan Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 09/20] selftests/bpf: Refactor bpf_get_ksyms() trace helper Ihor Solodrai
2026-02-23 23:23   ` Eduard Zingerman
2026-02-23 19:07 ` [PATCH bpf v4 10/20] selftests/bpf: Fix memory leaks in tests Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 11/20] selftests/bpf: Fix cleanup in check_fd_array_cnt__fd_array_too_big() Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 12/20] veristat: Fix a memory leak for preset ENUMERATOR Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 13/20] selftests/bpf: Fix use-after-free in xdp_metadata test Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 14/20] selftests/bpf: Fix double thread join in uprobe_multi_test Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 15/20] selftests/bpf: Fix resource leaks caused by missing cleanups Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 16/20] selftests/bpf: Free bpf_object in test_sysctl Ihor Solodrai
2026-02-23 19:07 ` [PATCH bpf v4 17/20] selftests/bpf: Fix array bounds warning in jit_disasm_helpers Ihor Solodrai
2026-02-23 19:11 ` [PATCH bpf v4 18/20] selftests/bpf: Fix out-of-bounds array access bugs reported by ASAN Ihor Solodrai
2026-02-23 19:11   ` [PATCH bpf v4 19/20] selftests/bpf: Check BPFTOOL env var in detect_bpftool_path() Ihor Solodrai
2026-02-23 19:11   ` Ihor Solodrai [this message]
2026-02-24  3:00 ` [PATCH bpf v4 00/20] selftests/bpf: Fixes for userspace ASAN patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260223191118.655185-3-ihor.solodrai@linux.dev \
    --to=ihor.solodrai@linux.dev \
    --cc=alexis.lothore@bootlin.com \
    --cc=ameryhung@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=eddyz87@gmail.com \
    --cc=kernel-team@meta.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olsajiri@gmail.com \
    --cc=yatsenko@meta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox