]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
selftests/bpf: Fix use-after-free in xdp_metadata test
authorIhor Solodrai <ihor.solodrai@linux.dev>
Mon, 23 Feb 2026 19:07:29 +0000 (11:07 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 24 Feb 2026 16:19:49 +0000 (08:19 -0800)
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>
tools/testing/selftests/bpf/prog_tests/xdp_metadata.c

index 19f92affc2daa23fdd869554e7a0475b86350a4f..5c31054ad4a4c4faf921d3f30f8b3897ee8e42ed 100644 (file)
@@ -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);
 }