From a1d9c91febfe78c574f0fdb58ee59f23ac970440 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 10 Jun 2024 11:06:32 +0200 Subject: executor: ignore kernel text addresses in comparisons We ignore comparisons of kernel data/physical addresses b/c these are not coming from user space. Ignore kernel text addresses for the same reason. --- executor/executor.cc | 4 ++-- pkg/runtest/run_test.go | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/executor/executor.cc b/executor/executor.cc index 458931684..c2c361ccf 100644 --- a/executor/executor.cc +++ b/executor/executor.cc @@ -1583,8 +1583,8 @@ bool kcov_comparison_t::ignore() const return true; // Filter out kernel physical memory addresses. // These are internal kernel comparisons and should not be interesting. - bool kptr1 = is_kernel_data(arg1) || arg1 == 0; - bool kptr2 = is_kernel_data(arg2) || arg2 == 0; + bool kptr1 = is_kernel_data(arg1) || is_kernel_pc(arg1) > 0 || arg1 == 0; + bool kptr2 = is_kernel_data(arg2) || is_kernel_pc(arg2) > 0 || arg2 == 0; if (kptr1 && kptr2) return true; return !coverage_filter(pc); diff --git a/pkg/runtest/run_test.go b/pkg/runtest/run_test.go index 48e8b0cbd..dee047449 100644 --- a/pkg/runtest/run_test.go +++ b/pkg/runtest/run_test.go @@ -272,7 +272,6 @@ func testCover(t *testing.T, target *prog.Target) { {0x4321, 0xabcd1234}, {0x3333, 0}, {0, 0x3333}, - {0xc0dec0dec0de1000, 0xc0dec0dec0de0000}, {0xabcd, 0xda1a0010}, }, }, @@ -292,8 +291,6 @@ func testCover(t *testing.T, target *prog.Target) { {0x2222222222222222, 0x1111111111111111}, {0x4321, 0xffffabcd}, {0xc0dec0dec0de1000, 0xc0dec0dec0de0000}, - {0xc0de1000, 0xc0de0000}, - {0xc0de1022, 0xc0de0011}, }, }, // TODO: test max signal filtering and cover filter when syz-executor handles them. -- cgit mrf-deployment