diff options
| author | Ihor Solodrai <ihor.solodrai@linux.dev> | 2026-02-23 22:07:29 +0300 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2026-02-24 19:19:49 +0300 |
| commit | f7ac552be7f13e834a942f64b1ac87e7755b32f4 (patch) | |
| tree | 7cde113574630c395575e3b041d1f132ceedd6e4 /tools/testing | |
| parent | ff9511410d5fbdec21a3bbfaa477aa1f56735b33 (diff) | |
| download | linux-f7ac552be7f13e834a942f64b1ac87e7755b32f4.tar.xz | |
selftests/bpf: Fix use-after-free in xdp_metadata test
ASAN reported a use-after-free in close_xsk().
The xsk->socket internally references xsk->umem via socket->ctx->umem,
so the socket must be deleted before the umem. Fix the order of
operations in close_xsk().
Acked-by: Mykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Link: https://lore.kernel.org/r/20260223190736.649171-14-ihor.solodrai@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/xdp_metadata.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c b/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c index 19f92affc2da..5c31054ad4a4 100644 --- a/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c +++ b/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c @@ -126,10 +126,10 @@ static int open_xsk(int ifindex, struct xsk *xsk) static void close_xsk(struct xsk *xsk) { - if (xsk->umem) - xsk_umem__delete(xsk->umem); if (xsk->socket) xsk_socket__delete(xsk->socket); + if (xsk->umem) + xsk_umem__delete(xsk->umem); munmap(xsk->umem_area, UMEM_SIZE); } |
