Commit d0445d7d authored by Mykyta Yatsenko's avatar Mykyta Yatsenko Committed by Andrii Nakryiko
Browse files

libbpf: Check bpf_map_skeleton link for NULL



Avoid dereferencing bpf_map_skeleton's link field if it's NULL.
If BPF map skeleton is created with the size, that indicates containing
link field, but the field was not actually initialized with valid
bpf_link pointer, libbpf crashes. This may happen when using libbpf-rs
skeleton.
Skeleton loading may still progress, but user needs to attach struct_ops
map separately.

Signed-off-by: default avatarMykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250514113220.219095-1-mykyta.yatsenko5@gmail.com
parent bc049387
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -14102,6 +14102,12 @@ int bpf_object__attach_skeleton(struct bpf_object_skeleton *s)
		}

		link = map_skel->link;
		if (!link) {
			pr_warn("map '%s': BPF map skeleton link is uninitialized\n",
				bpf_map__name(map));
			continue;
		}

		if (*link)
			continue;