[-next] init/main: Use strtobool for param parsing in set_debug_rodata()

Message ID 20221024093817.3003291-1-tongtiangen@huawei.com
State New
Headers
Series [-next] init/main: Use strtobool for param parsing in set_debug_rodata() |

Commit Message

Tong Tiangen Oct. 24, 2022, 9:38 a.m. UTC
  Aftern parsing "full", we can still use strtobool rather than "on" and
"off" parsing in set_debug_rodata().

Fixes: 2e8cff0a0eee ("arm64: fix rodata=full")
Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
---
 init/main.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
  

Comments

Mark Rutland Oct. 24, 2022, 11 a.m. UTC | #1
On Mon, Oct 24, 2022 at 09:38:17AM +0000, Tong Tiangen wrote:
> Aftern parsing "full", we can still use strtobool rather than "on" and
> "off" parsing in set_debug_rodata().
> 
> Fixes: 2e8cff0a0eee ("arm64: fix rodata=full")

Why do you think this is a fix; what do you believe is broken?

As noted in the commit message for 2e8cff0a0eee, we *deliberately* don't use
strtobool() here so that we don't accept garbage values like "ful".

NAK to this patch as it stands.

Thanks,
Mark.

> Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
> ---
>  init/main.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/init/main.c b/init/main.c
> index aa21add5f7c5..f420e20b1fa3 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -1463,13 +1463,7 @@ static int __init set_debug_rodata(char *str)
>  	if (arch_parse_debug_rodata(str))
>  		return 0;
>  
> -	if (str && !strcmp(str, "on"))
> -		rodata_enabled = true;
> -	else if (str && !strcmp(str, "off"))
> -		rodata_enabled = false;
> -	else
> -		pr_warn("Invalid option string for rodata: '%s'\n", str);
> -	return 0;
> +	return strtobool(str, &rodata_enabled);
>  }
>  early_param("rodata", set_debug_rodata);
>  #endif
> -- 
> 2.25.1
>
  
Tong Tiangen Oct. 24, 2022, 11:27 a.m. UTC | #2
在 2022/10/24 19:00, Mark Rutland 写道:
> On Mon, Oct 24, 2022 at 09:38:17AM +0000, Tong Tiangen wrote:
>> Aftern parsing "full", we can still use strtobool rather than "on" and
>> "off" parsing in set_debug_rodata().
>>
>> Fixes: 2e8cff0a0eee ("arm64: fix rodata=full")
> 
> Why do you think this is a fix; what do you believe is broken?
> 
> As noted in the commit message for 2e8cff0a0eee, we *deliberately* don't use
> strtobool() here so that we don't accept garbage values like "ful".
> 
> NAK to this patch as it stands.
> 
> Thanks,
> Mark.

Hi Mark:

Ok, missing that.

Thanks,
Tong.

> 
>> Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
>> ---
>>   init/main.c | 8 +-------
>>   1 file changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/init/main.c b/init/main.c
>> index aa21add5f7c5..f420e20b1fa3 100644
>> --- a/init/main.c
>> +++ b/init/main.c
>> @@ -1463,13 +1463,7 @@ static int __init set_debug_rodata(char *str)
>>   	if (arch_parse_debug_rodata(str))
>>   		return 0;
>>   
>> -	if (str && !strcmp(str, "on"))
>> -		rodata_enabled = true;
>> -	else if (str && !strcmp(str, "off"))
>> -		rodata_enabled = false;
>> -	else
>> -		pr_warn("Invalid option string for rodata: '%s'\n", str);
>> -	return 0;
>> +	return strtobool(str, &rodata_enabled);
>>   }
>>   early_param("rodata", set_debug_rodata);
>>   #endif
>> -- 
>> 2.25.1
>>
> 
> .
  

Patch

diff --git a/init/main.c b/init/main.c
index aa21add5f7c5..f420e20b1fa3 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1463,13 +1463,7 @@  static int __init set_debug_rodata(char *str)
 	if (arch_parse_debug_rodata(str))
 		return 0;
 
-	if (str && !strcmp(str, "on"))
-		rodata_enabled = true;
-	else if (str && !strcmp(str, "off"))
-		rodata_enabled = false;
-	else
-		pr_warn("Invalid option string for rodata: '%s'\n", str);
-	return 0;
+	return strtobool(str, &rodata_enabled);
 }
 early_param("rodata", set_debug_rodata);
 #endif