Commit 4538a38f authored by Tyrone Wu's avatar Tyrone Wu Committed by Alexei Starovoitov
Browse files

selftests/bpf: fix perf_event link info name_len assertion



Fix `name_len` field assertions in `bpf_link_info.perf_event` for
kprobe/uprobe/tracepoint to validate correct name size instead of 0.

Fixes: 23cf7aa5 ("selftests/bpf: Add selftest for fill_link_info")
Signed-off-by: default avatarTyrone Wu <wudevelops@gmail.com>
Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
Acked-by: default avatarYafang Shao <laoar.shao@gmail.com>
Link: https://lore.kernel.org/r/20241008164312.46269-2-wudevelops@gmail.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 4deecdd2
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -67,8 +67,9 @@ static int verify_perf_link_info(int fd, enum bpf_perf_event_type type, long add

		ASSERT_EQ(info.perf_event.kprobe.cookie, PERF_EVENT_COOKIE, "kprobe_cookie");

		ASSERT_EQ(info.perf_event.kprobe.name_len, strlen(KPROBE_FUNC) + 1,
				  "name_len");
		if (!info.perf_event.kprobe.func_name) {
			ASSERT_EQ(info.perf_event.kprobe.name_len, 0, "name_len");
			info.perf_event.kprobe.func_name = ptr_to_u64(&buf);
			info.perf_event.kprobe.name_len = sizeof(buf);
			goto again;
@@ -79,8 +80,9 @@ static int verify_perf_link_info(int fd, enum bpf_perf_event_type type, long add
		ASSERT_EQ(err, 0, "cmp_kprobe_func_name");
		break;
	case BPF_PERF_EVENT_TRACEPOINT:
		ASSERT_EQ(info.perf_event.tracepoint.name_len, strlen(TP_NAME) + 1,
				  "name_len");
		if (!info.perf_event.tracepoint.tp_name) {
			ASSERT_EQ(info.perf_event.tracepoint.name_len, 0, "name_len");
			info.perf_event.tracepoint.tp_name = ptr_to_u64(&buf);
			info.perf_event.tracepoint.name_len = sizeof(buf);
			goto again;
@@ -96,8 +98,9 @@ static int verify_perf_link_info(int fd, enum bpf_perf_event_type type, long add
	case BPF_PERF_EVENT_URETPROBE:
		ASSERT_EQ(info.perf_event.uprobe.offset, offset, "uprobe_offset");

		ASSERT_EQ(info.perf_event.uprobe.name_len, strlen(UPROBE_FILE) + 1,
				  "name_len");
		if (!info.perf_event.uprobe.file_name) {
			ASSERT_EQ(info.perf_event.uprobe.name_len, 0, "name_len");
			info.perf_event.uprobe.file_name = ptr_to_u64(&buf);
			info.perf_event.uprobe.name_len = sizeof(buf);
			goto again;