]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bpf: Call the missed btf_record_free() when map creation fails
authorHou Tao <houtao1@huawei.com>
Thu, 12 Sep 2024 01:28:44 +0000 (09:28 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 13 Sep 2024 23:51:08 +0000 (16:51 -0700)
commit87e9675a0dfd0bf4a36550e4a0e673038ec67aee
treeaef1cd925f24edb56582e9269432fc5e7ad537ea
parent211bf9cf178a986f025b65cee11012d4e3d6b1f8
bpf: Call the missed btf_record_free() when map creation fails

When security_bpf_map_create() in map_create() fails, map_create() will
call btf_put() and ->map_free() callback to free the map. It doesn't
free the btf_record of map value, so add the missed btf_record_free()
when map creation fails.

However btf_record_free() needs to be called after ->map_free() just
like bpf_map_free_deferred() did, because ->map_free() may use the
btf_record to free the special fields in preallocated map value. So
factor out bpf_map_free() helper to free the map, btf_record, and btf
orderly and use the helper in both map_create() and
bpf_map_free_deferred().

Signed-off-by: Hou Tao <houtao1@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20240912012845.3458483-2-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/syscall.c