[PATCH] staging: speakup: remove simple_strtoul()

Justin Skists justin.skists at juzza.co.uk
Sun May 20 05:22:42 EDT 2018



On 20 May 2018 09:59:00 BST, Justin Skists <justin.skists at juzza.co.uk> wrote:
>
>
>Hi Gabriel,
>
>On 19 May 2018 23:02:36 BST, Gabriel Fedel <fedel at fedel.net.br> wrote:
>>Replace simple_strtoul() with kstrtoul(), because simple_strtoul() is
>>obsolete
>>
>>Signed-off-by: Gabriel Fedel <fedel at fedel.net.br>
>>---
>>  drivers/staging/speakup/kobjects.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>>diff --git a/drivers/staging/speakup/kobjects.c 
>>b/drivers/staging/speakup/kobjects.c
>>index f1f9022..ddc5ac3 100644
>>--- a/drivers/staging/speakup/kobjects.c
>>+++ b/drivers/staging/speakup/kobjects.c
>>@@ -154,7 +154,9 @@ static ssize_t chars_chartab_store(struct kobject
>>*kobj,
>>  			continue;
>>  		}
>>
>>-		index = simple_strtoul(cp, &temp, 10);
>>+		if  kstrtoul((char *)cp, 10, &index) != 0
>>+			pr_warn("overflow or parsing error has occurred");
>>+
>>  		if (index > 255) {
>>  			rejected++;
>>  			cp = linefeed + 1;
>>@@ -787,7 +789,8 @@ static ssize_t message_store_helper(const char
>>*buf, 
>>size_t count,
>>  			continue;
>>  		}
>>
>>-		index = simple_strtoul(cp, &temp, 10);
>>+		if kstrtoul((char *)cp, 10, &index) != 0
>>+			pr_warn("overflow or parsing error has occurred");
>>
>>  		while ((temp < linefeed) && (*temp == ' ' || *temp == '\t'))
>>  			temp++;
>
>Sorry. simple_strtoul() would've updated temp which would mean the
>behaviour at this while loop is now different. 

Oops. I shouldn't review patches without coffee. With a closer look at what the while loop was doing, I don't think it is a real issue. 

Best regards,
Justin


More information about the Speakup mailing list