Re: [PATCH v1 1/1] string: Group str_has_prefix() and strstarts()

From: Kees Cook
Date: Tue Jul 15 2025 - 01:25:06 EST


On Fri, Jul 11, 2025 at 11:55:14AM +0300, Andy Shevchenko wrote:
> The two str_has_prefix() and strstarts() are about the same
> with a slight difference on what they return. Group them in
> the header.

It seems more like strstarts should just be a macro around
str_has_prefix() != 0?

-Kees

>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> ---
> include/linux/string.h | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/include/linux/string.h b/include/linux/string.h
> index 01621ad0f598..fdd3442c6bcb 100644
> --- a/include/linux/string.h
> +++ b/include/linux/string.h
> @@ -345,16 +345,6 @@ extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
>
> int ptr_to_hashval(const void *ptr, unsigned long *hashval_out);
>
> -/**
> - * strstarts - does @str start with @prefix?
> - * @str: string to examine
> - * @prefix: prefix to look for.
> - */
> -static inline bool strstarts(const char *str, const char *prefix)
> -{
> - return strncmp(str, prefix, strlen(prefix)) == 0;
> -}
> -
> size_t memweight(const void *ptr, size_t bytes);
>
> /**
> @@ -562,4 +552,14 @@ static __always_inline size_t str_has_prefix(const char *str, const char *prefix
> return strncmp(str, prefix, len) == 0 ? len : 0;
> }
>
> +/**
> + * strstarts - does @str start with @prefix?
> + * @str: string to examine
> + * @prefix: prefix to look for.
> + */
> +static inline bool strstarts(const char *str, const char *prefix)
> +{
> + return strncmp(str, prefix, strlen(prefix)) == 0;
> +}
> +
> #endif /* _LINUX_STRING_H_ */
> --
> 2.47.2
>

--
Kees Cook