From: Soma Nakata Date: Mon, 6 Jan 2025 23:15:35 +0000 (+0900) Subject: bpf: Fix range_tree_set() error handling X-Git-Tag: v6.14-rc1~133^2~22 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b8b1e30016260aba338a65fdcc2bfd50933c6f0a;p=linux-block.git bpf: Fix range_tree_set() error handling range_tree_set() might fail and return -ENOMEM, causing subsequent `bpf_arena_alloc_pages` to fail. Add the error handling. Signed-off-by: Soma Nakata Acked-by: Hou Tao Link: https://lore.kernel.org/r/20250106231536.52856-1-soma.nakata@somane.sakura.ne.jp Signed-off-by: Alexei Starovoitov --- diff --git a/kernel/bpf/arena.c b/kernel/bpf/arena.c index 41a76ca56040..4b22a651b5d5 100644 --- a/kernel/bpf/arena.c +++ b/kernel/bpf/arena.c @@ -138,7 +138,11 @@ static struct bpf_map *arena_map_alloc(union bpf_attr *attr) INIT_LIST_HEAD(&arena->vma_list); bpf_map_init_from_attr(&arena->map, attr); range_tree_init(&arena->rt); - range_tree_set(&arena->rt, 0, attr->max_entries); + err = range_tree_set(&arena->rt, 0, attr->max_entries); + if (err) { + bpf_map_area_free(arena); + goto err; + } mutex_init(&arena->lock); return &arena->map;