Commit f3982385 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

perf build-id: Reduce size of "size" variable



Later clean up of the dso_id to include a build_id will suffer from
alignment and size issues. The size can only hold up to a value of
BUILD_ID_SIZE (20) and the mmap2 event uses a byte for the value.

Signed-off-by: default avatarIan Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250724163302.596743-2-irogers@google.com


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent fcc7cc31
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@

struct build_id {
	u8	data[BUILD_ID_SIZE];
	size_t	size;
	u8	size;
};

struct dso;
+6 −2
Original line number Diff line number Diff line
@@ -2248,7 +2248,9 @@ int perf_event__synthesize_build_id(const struct perf_tool *tool,

	memset(&ev, 0, len);

	ev.build_id.size = min(bid->size, sizeof(ev.build_id.build_id));
	ev.build_id.size = bid->size;
	if (ev.build_id.size > sizeof(ev.build_id.build_id))
		ev.build_id.size = sizeof(ev.build_id.build_id);
	memcpy(ev.build_id.build_id, bid->data, ev.build_id.size);
	ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID;
	ev.build_id.header.misc = misc | PERF_RECORD_MISC_BUILD_ID_SIZE;
@@ -2308,7 +2310,9 @@ int perf_event__synthesize_mmap2_build_id(const struct perf_tool *tool,
	ev.mmap2.len = len;
	ev.mmap2.pgoff = pgoff;

	ev.mmap2.build_id_size = min(bid->size, sizeof(ev.mmap2.build_id));
	ev.mmap2.build_id_size = bid->size;
	if (ev.mmap2.build_id_size > sizeof(ev.mmap2.build_id))
		ev.build_id.size = sizeof(ev.mmap2.build_id);
	memcpy(ev.mmap2.build_id, bid->data, ev.mmap2.build_id_size);

	ev.mmap2.prot = prot;