diff mbox series

[07/12] power: Replace strncmp with str_has_prefix

Message ID 20190729151454.9606-1-hslester96@gmail.com (mailing list archive)
State Changes Requested, archived
Headers show
Series Replace strncmp with str_has_prefix | expand

Commit Message

Chuhong Yuan July 29, 2019, 3:14 p.m. UTC
strncmp(str, const, len) is error-prone.
We had better use newly introduced
str_has_prefix() instead of it.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
---
 kernel/power/hibernate.c | 8 ++++----
 kernel/power/main.c      | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

Comments

Pavel Machek July 29, 2019, 7:15 p.m. UTC | #1
On Mon 2019-07-29 23:14:54, Chuhong Yuan wrote:
> strncmp(str, const, len) is error-prone.
> We had better use newly introduced
> str_has_prefix() instead of it.
> 
> Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
> ---
>  kernel/power/hibernate.c | 8 ++++----
>  kernel/power/main.c      | 2 +-
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
> index cd7434e6000d..49d4bfdb2b67 100644
> --- a/kernel/power/hibernate.c
> +++ b/kernel/power/hibernate.c
> @@ -1188,15 +1188,15 @@ static int __init resume_offset_setup(char *str)
>  
>  static int __init hibernate_setup(char *str)
>  {
> -	if (!strncmp(str, "noresume", 8)) {
> +	if (str_has_prefix(str, "noresume")) {
>  		noresume = 1;
> -	} else if (!strncmp(str, "nocompress", 10)) {
> +	} else if (str_has_prefix(str, "nocompress")) {
>  		nocompress = 1;

Ok, old code is bad, too... but this makes the error visible. We do
not want "noresumenextmonday" to set noresume = 1, right?

								Pavel
Chuhong Yuan Aug. 1, 2019, 8:07 a.m. UTC | #2
Pavel Machek <pavel@ucw.cz> 于2019年7月30日周二 上午3:15写道:
>
> On Mon 2019-07-29 23:14:54, Chuhong Yuan wrote:
> > strncmp(str, const, len) is error-prone.
> > We had better use newly introduced
> > str_has_prefix() instead of it.
> >
> > Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
> > ---
> >  kernel/power/hibernate.c | 8 ++++----
> >  kernel/power/main.c      | 2 +-
> >  2 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
> > index cd7434e6000d..49d4bfdb2b67 100644
> > --- a/kernel/power/hibernate.c
> > +++ b/kernel/power/hibernate.c
> > @@ -1188,15 +1188,15 @@ static int __init resume_offset_setup(char *str)
> >
> >  static int __init hibernate_setup(char *str)
> >  {
> > -     if (!strncmp(str, "noresume", 8)) {
> > +     if (str_has_prefix(str, "noresume")) {
> >               noresume = 1;
> > -     } else if (!strncmp(str, "nocompress", 10)) {
> > +     } else if (str_has_prefix(str, "nocompress")) {
> >               nocompress = 1;
>
> Ok, old code is bad, too... but this makes the error visible. We do
> not want "noresumenextmonday" to set noresume = 1, right?
>

I am not clear about the semantic of the code.
Therefore, what is the right way to fix this error?

>                                                                 Pavel
>
> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
diff mbox series

Patch

diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index cd7434e6000d..49d4bfdb2b67 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -1188,15 +1188,15 @@  static int __init resume_offset_setup(char *str)
 
 static int __init hibernate_setup(char *str)
 {
-	if (!strncmp(str, "noresume", 8)) {
+	if (str_has_prefix(str, "noresume")) {
 		noresume = 1;
-	} else if (!strncmp(str, "nocompress", 10)) {
+	} else if (str_has_prefix(str, "nocompress")) {
 		nocompress = 1;
-	} else if (!strncmp(str, "no", 2)) {
+	} else if (str_has_prefix(str, "no")) {
 		noresume = 1;
 		nohibernate = 1;
 	} else if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX)
-		   && !strncmp(str, "protect_image", 13)) {
+		   && str_has_prefix(str, "protect_image")) {
 		enable_restore_image_protection();
 	}
 	return 1;
diff --git a/kernel/power/main.c b/kernel/power/main.c
index bdbd605c4215..5e5f64bb3a43 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -495,7 +495,7 @@  static suspend_state_t decode_state(const char *buf, size_t n)
 	len = p ? p - buf : n;
 
 	/* Check hibernation first. */
-	if (len == 4 && !strncmp(buf, "disk", len))
+	if (len == 4 && str_has_prefix(buf, "disk"))
 		return PM_SUSPEND_MAX;
 
 #ifdef CONFIG_SUSPEND