On 11/25/25 04:20, Nirbhay Sharma wrote:


On 10/26/25 2:42 PM, Nirbhay Sharma wrote:
Fix compilation error in UPROBE_setup caused by pointer type mismatch
in the ternary expression when compiled with -fcf-protection. The
probed_uprobe function pointer has the __attribute__((nocf_check))
attribute, which causes the conditional operator to fail when combined
with the regular probed_uretprobe function pointer:

   seccomp_bpf.c:5175:74: error: pointer type mismatch in conditional
   expression [-Wincompatible-pointer-types]

Cast both function pointers to 'const void *' to match the expected
parameter type of get_uprobe_offset(), resolving the type mismatch
while preserving the function selection logic.

This error appears with compilers that enable Control Flow Integrity
(CFI) protection via -fcf-protection, such as Clang 19.1.2 (default
on Fedora).

Signed-off-by: Nirbhay Sharma <[email protected]>
---
  tools/testing/selftests/seccomp/seccomp_bpf.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c 
b/tools/testing/selftests/seccomp/seccomp_bpf.c
index 874f17763536..e13ffe18ef95 100644
--- a/tools/testing/selftests/seccomp/seccomp_bpf.c
+++ b/tools/testing/selftests/seccomp/seccomp_bpf.c
@@ -5172,7 +5172,8 @@ FIXTURE_SETUP(UPROBE)
          ASSERT_GE(bit, 0);
      }
-    offset = get_uprobe_offset(variant->uretprobe ? probed_uretprobe : 
probed_uprobe);
+    offset = get_uprobe_offset(variant->uretprobe ?
+        (const void *)probed_uretprobe : (const void *)probed_uprobe);
      ASSERT_GE(offset, 0);
      if (variant->uretprobe)

Hi all,

I'm following up on this patch that fixes the pointer type mismatch in
UPROBE_setup when building with -fcf-protection. It resolves the
incompatible-pointer-types error seen with Clang 19.

Please let me know if there are any comments or some changes needed.


Hi Kees,

Is it okay to take this patch through my tree?

thanks,
-- Shuah


Reply via email to