Messages in this thread Patch in this message | | | From | Timo Beckers <> | Subject | [PATCH] perf core: apply calculated padding to PERF_SAMPLE_RAW output | Date | Tue, 19 May 2020 15:26:16 +0200 |
| |
Zero the amount of padding bytes determined in perf_prepare_sample(). This prevents garbage being read from the ring buffer after it has wrapped the page boundary at least once.
Signed-off-by: Timo Beckers <timo@incline.eu> --- kernel/events/core.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c index 80cf996a7f19..d4e0b003ece0 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -6807,8 +6807,16 @@ void perf_output_sample(struct perf_output_handle *handle, break; frag = frag->next; } while (1); - if (frag->pad) - __output_skip(handle, NULL, frag->pad); + /* + * The padding value is determined in + * perf_prepare_sample() and is not + * expected to exceed u64. + */ + if (frag->pad) { + u64 zero = 0; + + __output_copy(handle, &zero, frag->pad); + } } else { struct { u32 size; -- 2.26.2
| |