]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jul 2026 13:08:10 +0000 (15:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jul 2026 13:08:10 +0000 (15:08 +0200)
added patches:
coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch

queue-6.12/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch [new file with mode: 0644]
queue-6.12/series

diff --git a/queue-6.12/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch b/queue-6.12/coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch
new file mode 100644 (file)
index 0000000..19ab016
--- /dev/null
@@ -0,0 +1,43 @@
+From 98495b5a4d77dd22e106f462b76e1093a55b29a7 Mon Sep 17 00:00:00 2001
+From: Junrui Luo <moonafterrain@outlook.com>
+Date: Thu, 4 Jun 2026 15:34:25 +0800
+Subject: coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer()
+
+From: Junrui Luo <moonafterrain@outlook.com>
+
+commit 98495b5a4d77dd22e106f462b76e1093a55b29a7 upstream.
+
+When the SMB sink is used as a perf AUX sink, smb_update_buffer() calls
+smb_sync_perf_buffer() to copy hardware trace data into the perf AUX ring
+buffer pages. It derives pg_idx = head >> PAGE_SHIFT from @head, which is
+handle->head, and indexes dst_pages[pg_idx]. The pg_idx %= nr_pages
+normalization is only applied after the first loop iteration.
+
+This leaves the initial page index underived from the buffer size, which
+can result in an out-of-bounds write past dst_pages[] when head exceeds
+the AUX buffer size.
+
+Normalize head modulo the AUX buffer size before deriving the page index
+and offset, mirroring tmc_etr_sync_perf_buffer().
+
+Fixes: 06f5c2926aaa ("drivers/coresight: Add UltraSoc System Memory Buffer driver")
+Reported-by: Yuhao Jiang <danisjiang@gmail.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Junrui Luo <moonafterrain@outlook.com>
+Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
+Link: https://lore.kernel.org/r/SYBPR01MB788156B3380A36835DB22290AF102@SYBPR01MB7881.ausprd01.prod.outlook.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/hwtracing/coresight/ultrasoc-smb.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/hwtracing/coresight/ultrasoc-smb.c
++++ b/drivers/hwtracing/coresight/ultrasoc-smb.c
+@@ -338,6 +338,7 @@ static void smb_sync_perf_buffer(struct
+       unsigned long to_copy;
+       long pg_idx, pg_offset;
++      head %= (unsigned long)buf->nr_pages << PAGE_SHIFT;
+       pg_idx = head >> PAGE_SHIFT;
+       pg_offset = head & (PAGE_SIZE - 1);
index 292d8a735af74ba57b85df0a1b44e1ad0deb4b2d..34967bb71bddb5110994cc140c45a5b4f9a54c7b 100644 (file)
@@ -158,3 +158,4 @@ fs-ntfs3-rename-ni_readpage_cmpr-into-ni_read_folio_.patch
 fs-ntfs3-fsync-files-by-syncing-parent-inodes.patch
 fs-ntfs3-zero-fill-folios-beyond-i_valid-in-ntfs_rea.patch
 fs-ntfs3-fix-missing-run-load-for-vcn0-in-attr_data_.patch
+coresight-ultrasoc-smb-fix-oob-write-in-smb_sync_perf_buffer.patch