arch/x86/mm/pat/set_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Correct end page calculation by subtracting 1 to prevent
out-of-bounds access.
Reported-by: syzbot+e34177f6091df113ef20@syzkaller.appspotmail.com
Signed-off-by: neqbal <nooraineqbal@gmail.com>
---
arch/x86/mm/pat/set_memory.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
index d2d54b8c4dbb..daefc96403f1 100644
--- a/arch/x86/mm/pat/set_memory.c
+++ b/arch/x86/mm/pat/set_memory.c
@@ -446,7 +446,7 @@ static void cpa_flush(struct cpa_data *cpa, int cache)
}
start = fix_addr(__cpa_addr(cpa, 0));
- end = fix_addr(__cpa_addr(cpa, cpa->numpages));
+ end = fix_addr(__cpa_addr(cpa, cpa->numpages - 1));
if (cpa->force_flush_all)
end = TLB_FLUSH_ALL;
--
2.51.0
On Sun, Sep 28, 2025 at 04:06:52AM +0530, neqbal wrote:
> Correct end page calculation by subtracting 1 to prevent
> out-of-bounds access.
>
> Reported-by: syzbot+e34177f6091df113ef20@syzkaller.appspotmail.com
> Signed-off-by: neqbal <nooraineqbal@gmail.com>
> ---
> arch/x86/mm/pat/set_memory.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
> index d2d54b8c4dbb..daefc96403f1 100644
> --- a/arch/x86/mm/pat/set_memory.c
> +++ b/arch/x86/mm/pat/set_memory.c
> @@ -446,7 +446,7 @@ static void cpa_flush(struct cpa_data *cpa, int cache)
> }
>
> start = fix_addr(__cpa_addr(cpa, 0));
> - end = fix_addr(__cpa_addr(cpa, cpa->numpages));
> + end = fix_addr(__cpa_addr(cpa, cpa->numpages - 1));
> if (cpa->force_flush_all)
> end = TLB_FLUSH_ALL;
>
> --
I guess this got fixed differently:
f25785f9b088 ("x86/mm: Fix overflow in __cpa_addr()")
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
© 2016 - 2026 Red Hat, Inc.