[PATCH v2] riscv: define ILLEGAL_POINTER_VALUE for 64bit

Jisheng Zhang posted 1 patch 1 year, 7 months ago
arch/riscv/Kconfig | 5 +++++
1 file changed, 5 insertions(+)
[PATCH v2] riscv: define ILLEGAL_POINTER_VALUE for 64bit
Posted by Jisheng Zhang 1 year, 7 months ago
This is used in poison.h for poison pointer offset. Based on current
SV39, SV48 and SV57 vm layout, 0xdead000000000000 is a proper value
that is not mappable, this can avoid potentially turning an oops to
an expolit.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---

Since v1:
 - fix typo:s/SV59/SV57

 arch/riscv/Kconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index c51b32a8ddff..c992eabbd002 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -313,6 +313,11 @@ config GENERIC_HWEIGHT
 config FIX_EARLYCON_MEM
 	def_bool MMU
 
+config ILLEGAL_POINTER_VALUE
+	hex
+	default 0 if 32BIT
+	default 0xdead000000000000 if 64BIT
+
 config PGTABLE_LEVELS
 	int
 	default 5 if 64BIT
-- 
2.43.0
Re: [PATCH v2] riscv: define ILLEGAL_POINTER_VALUE for 64bit
Posted by Jisheng Zhang 1 year, 7 months ago
On Sat, Jul 06, 2024 at 01:02:10AM +0800, Jisheng Zhang wrote:
> This is used in poison.h for poison pointer offset. Based on current
> SV39, SV48 and SV57 vm layout, 0xdead000000000000 is a proper value
> that is not mappable, this can avoid potentially turning an oops to
> an expolit.

Maybe I also need to cc stable? This is a secure hole fix patch.

> 
> Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> ---
> 
> Since v1:
>  - fix typo:s/SV59/SV57
> 
>  arch/riscv/Kconfig | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index c51b32a8ddff..c992eabbd002 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -313,6 +313,11 @@ config GENERIC_HWEIGHT
>  config FIX_EARLYCON_MEM
>  	def_bool MMU
>  
> +config ILLEGAL_POINTER_VALUE
> +	hex
> +	default 0 if 32BIT
> +	default 0xdead000000000000 if 64BIT
> +
>  config PGTABLE_LEVELS
>  	int
>  	default 5 if 64BIT
> -- 
> 2.43.0
> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Re: [PATCH v2] riscv: define ILLEGAL_POINTER_VALUE for 64bit
Posted by Palmer Dabbelt 1 year, 4 months ago
On Fri, 05 Jul 2024 17:50:10 PDT (-0700), jszhang@kernel.org wrote:
> On Sat, Jul 06, 2024 at 01:02:10AM +0800, Jisheng Zhang wrote:
>> This is used in poison.h for poison pointer offset. Based on current
>> SV39, SV48 and SV57 vm layout, 0xdead000000000000 is a proper value
>> that is not mappable, this can avoid potentially turning an oops to
>> an expolit.
>
> Maybe I also need to cc stable? This is a secure hole fix patch.

Ya, and I guess it's just been broken forever?  I stuck a

Fixes: fbe934d69eb7 ("RISC-V: Build Infrastructure")

it should show up on for-next, assuming the tests pass...

>
>>
>> Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
>> ---
>>
>> Since v1:
>>  - fix typo:s/SV59/SV57
>>
>>  arch/riscv/Kconfig | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
>> index c51b32a8ddff..c992eabbd002 100644
>> --- a/arch/riscv/Kconfig
>> +++ b/arch/riscv/Kconfig
>> @@ -313,6 +313,11 @@ config GENERIC_HWEIGHT
>>  config FIX_EARLYCON_MEM
>>  	def_bool MMU
>>
>> +config ILLEGAL_POINTER_VALUE
>> +	hex
>> +	default 0 if 32BIT
>> +	default 0xdead000000000000 if 64BIT
>> +
>>  config PGTABLE_LEVELS
>>  	int
>>  	default 5 if 64BIT
>> --
>> 2.43.0
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv