[PATCH v2 1/2] RAS: Fix inverted context info bounds check in ARM processor errors

From: Abbott Liu

Date: Tue Aug 25 2026 - 10:03:07 EST


Commit 87880af2d24e ("APEI/GHES: ARM processor Error: don't go past
allocated memory") added bounds checks for malformed ARM processor
error records but contained a bug:

In log_arm_hw_error(), the ctx_info bounds check is inverted. The
condition `sz + (long)ctx_info - (long)err >= err->section_length`
adds ctx_info->size when the context header is already past the end
of the section instead of when it is within bounds. So change the
comparison to <=.

Fixes: 87880af2d24e ("APEI/GHES: ARM processor Error: don't go past allocated memory")

Signed-off-by: Abbott Liu <liuwenliang@xxxxxxxxxx>
---
drivers/ras/ras.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/ras/ras.c b/drivers/ras/ras.c
index 03df3db62334..2540538a16a8 100644
--- a/drivers/ras/ras.c
+++ b/drivers/ras/ras.c
@@ -74,7 +74,7 @@ void log_arm_hw_error(struct cper_sec_proc_arm *err, const u8 sev)
for (n = 0; n < err->context_info_num; n++) {
sz = sizeof(struct cper_arm_ctx_info);

- if (sz + (long)ctx_info - (long)err >= err->section_length)
+ if (sz + (long)ctx_info - (long)err <= err->section_length)
sz += ctx_info->size;

ctx_info = (struct cper_arm_ctx_info *)((long)ctx_info + sz);
--
2.43.0