[PATCH bpf-next 3/3] selftests/bpf: Add negative test for sockmap update from non-sockmap iter
From: Michal Luczaj
Date: Fri Oct 16 2026 - 18:00:57 EST
Iterator-context sockmap updates are now restricted to iter/sockmap. Add a
test that attempts an update from iter/unix and expects it to fail.
Signed-off-by: Michal Luczaj <mhal@xxxxxxx>
---
.../testing/selftests/bpf/progs/verifier_sockmap_mutate.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/verifier_sockmap_mutate.c b/tools/testing/selftests/bpf/progs/verifier_sockmap_mutate.c
index 20332a731d4e..1516fe1524bb 100644
--- a/tools/testing/selftests/bpf/progs/verifier_sockmap_mutate.c
+++ b/tools/testing/selftests/bpf/progs/verifier_sockmap_mutate.c
@@ -19,6 +19,12 @@ struct bpf_iter__sockmap {
};
} __attribute__((preserve_access_index));
+struct bpf_iter__unix {
+ union {
+ struct sock *unix_sk;
+ };
+} __attribute__((preserve_access_index));
+
struct {
__uint(type, BPF_MAP_TYPE_SOCKHASH);
__uint(max_entries, 1);
@@ -113,6 +119,14 @@ int test_trace_iter(struct bpf_iter__sockmap *ctx)
return 0;
}
+SEC("iter/unix")
+__failure __msg("cannot update sockmap in this context")
+int test_trace_iter_unix(struct bpf_iter__unix *ctx)
+{
+ test_sockmap_mutate(ctx->unix_sk);
+ return 0;
+}
+
SEC("raw_tp/kfree")
__failure __msg("cannot update sockmap in this context")
int test_raw_tp_delete(const void *ctx __always_unused)
--
2.56.0