[PATCH] x86/mm: Fix off-by-one error in set_memory

neqbal posted 1 patch 4 months, 1 week ago
arch/x86/mm/pat/set_memory.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] x86/mm: Fix off-by-one error in set_memory
Posted by neqbal 4 months, 1 week ago
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
Re: [PATCH] x86/mm: Fix off-by-one error in set_memory
Posted by Borislav Petkov 3 months, 1 week ago
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