Messages in this thread | ![/](/images/icornerl.gif) | | From | Ian Rogers <> | Date | Thu, 19 Jan 2023 08:08:13 -0800 | Subject | Re: [PATCH] perf buildid: Avoid copy of uninitialized memory |
| |
On Fri, Jan 13, 2023 at 10:57 AM Ian Rogers <irogers@google.com> wrote: > > build_id__init only copies the buildid data up to size leaving the > rest of the data array uninitialized. Copying the full array during > synthesis means the written event contains uninitialized memory. This > was detected by the Clang/LLVM memory sanitizer. > > Signed-off-by: Ian Rogers <irogers@google.com> > --- > tools/perf/util/synthetic-events.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic-events.c > index 3ab6a92b1a6d..348d05e4ec03 100644 > --- a/tools/perf/util/synthetic-events.c > +++ b/tools/perf/util/synthetic-events.c > @@ -2219,7 +2219,7 @@ int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16 > > len = pos->long_name_len + 1; > len = PERF_ALIGN(len, NAME_ALIGN); > - memcpy(&ev.build_id.build_id, pos->bid.data, sizeof(pos->bid.data)); > + memcpy(&ev.build_id.build_id, pos->bid.data, pos->bid.size);
Ping. Should be an uncontroversial change to fix a copy of uninitialized memory into the perf.data file during synthesis.
Thanks, Ian
> ev.build_id.size = pos->bid.size; > ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID; > ev.build_id.header.misc = misc | PERF_RECORD_MISC_BUILD_ID_SIZE; > -- > 2.39.0.314.g84b9a713c41-goog >
| ![\](/images/icornerr.gif) |