2021-06-14 18:04:23

by Mathieu Poirier

[permalink] [raw]
Subject: [PATCH 0/6] coresight: Patches for v5.14

Good day Greg,

A small tally this time around - there might be a part 2 but that is not
clear at the moment. Applies cleanly on today's char-misc-next
(db4e54aefdfe).

Regards,
Mathieu


Andy Shevchenko (1):
coresight: core: Switch to krealloc_array()

Jeremy Linton (1):
coresight: Propagate symlink failure

Junhao He (3):
coresight: core: Fix use of uninitialized pointer
coresight: core: Remove unnecessary assignment
coresight: etm4x: core: Remove redundant check of attr

Sai Prakash Ranjan (1):
coresight: tmc-etf: Fix global-out-of-bounds in
tmc_update_etf_buffer()

drivers/hwtracing/coresight/coresight-core.c | 11 +++++------
drivers/hwtracing/coresight/coresight-etm4x-core.c | 5 -----
drivers/hwtracing/coresight/coresight-tmc-etf.c | 2 +-
3 files changed, 6 insertions(+), 12 deletions(-)

--
2.25.1


2021-06-14 18:04:32

by Mathieu Poirier

[permalink] [raw]
Subject: [PATCH 5/6] coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()

From: Sai Prakash Ranjan <[email protected]>

commit 6f755e85c332 ("coresight: Add helper for inserting synchronization
packets") removed trailing '\0' from barrier_pkt array and updated the
call sites like etb_update_buffer() to have proper checks for barrier_pkt
size before read but missed updating tmc_update_etf_buffer() which still
reads barrier_pkt past the array size resulting in KASAN out-of-bounds
bug. Fix this by adding a check for barrier_pkt size before accessing
like it is done in etb_update_buffer().

BUG: KASAN: global-out-of-bounds in tmc_update_etf_buffer+0x4b8/0x698
Read of size 4 at addr ffffffd05b7d1030 by task perf/2629

Call trace:
dump_backtrace+0x0/0x27c
show_stack+0x20/0x2c
dump_stack+0x11c/0x188
print_address_description+0x3c/0x4a4
__kasan_report+0x140/0x164
kasan_report+0x10/0x18
__asan_report_load4_noabort+0x1c/0x24
tmc_update_etf_buffer+0x4b8/0x698
etm_event_stop+0x248/0x2d8
etm_event_del+0x20/0x2c
event_sched_out+0x214/0x6f0
group_sched_out+0xd0/0x270
ctx_sched_out+0x2ec/0x518
__perf_event_task_sched_out+0x4fc/0xe6c
__schedule+0x1094/0x16a0
preempt_schedule_irq+0x88/0x170
arm64_preempt_schedule_irq+0xf0/0x18c
el1_irq+0xe8/0x180
perf_event_exec+0x4d8/0x56c
setup_new_exec+0x204/0x400
load_elf_binary+0x72c/0x18c0
search_binary_handler+0x13c/0x420
load_script+0x500/0x6c4
search_binary_handler+0x13c/0x420
exec_binprm+0x118/0x654
__do_execve_file+0x77c/0xba4
__arm64_compat_sys_execve+0x98/0xac
el0_svc_common+0x1f8/0x5e0
el0_svc_compat_handler+0x84/0xb0
el0_svc_compat+0x10/0x50

The buggy address belongs to the variable:
barrier_pkt+0x10/0x40

Memory state around the buggy address:
ffffffd05b7d0f00: fa fa fa fa 04 fa fa fa fa fa fa fa 00 00 00 00
ffffffd05b7d0f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffffffd05b7d1000: 00 00 00 00 00 00 fa fa fa fa fa fa 00 00 00 03
^
ffffffd05b7d1080: fa fa fa fa 00 02 fa fa fa fa fa fa 03 fa fa fa
ffffffd05b7d1100: fa fa fa fa 00 00 00 00 05 fa fa fa fa fa fa fa
==================================================================

Link: https://lore.kernel.org/r/[email protected]
Fixes: 0c3fc4d5fa26 ("coresight: Add barrier packet for synchronisation")
Cc: [email protected]
Signed-off-by: Sai Prakash Ranjan <[email protected]>
Signed-off-by: Suzuki K Poulose <[email protected]>
Signed-off-by: Mathieu Poirier <[email protected]>
---
drivers/hwtracing/coresight/coresight-tmc-etf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/coresight/coresight-tmc-etf.c b/drivers/hwtracing/coresight/coresight-tmc-etf.c
index 45b85edfc690..cd0fb7bfba68 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etf.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etf.c
@@ -530,7 +530,7 @@ static unsigned long tmc_update_etf_buffer(struct coresight_device *csdev,
buf_ptr = buf->data_pages[cur] + offset;
*buf_ptr = readl_relaxed(drvdata->base + TMC_RRD);

- if (lost && *barrier) {
+ if (lost && i < CORESIGHT_BARRIER_PKT_SIZE) {
*buf_ptr = *barrier;
barrier++;
}
--
2.25.1

2021-06-15 07:35:29

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 0/6] coresight: Patches for v5.14

On Mon, Jun 14, 2021 at 11:58:55AM -0600, Mathieu Poirier wrote:
> Good day Greg,
>
> A small tally this time around - there might be a part 2 but that is not
> clear at the moment. Applies cleanly on today's char-misc-next
> (db4e54aefdfe).

For some reason I got patch 0/6 3 times, but I've only applied this
series once :)