Thread (71 messages) 71 messages, 19 authors, 2026-03-13

Re: [PATCH v4 01/10] string: provide strends()

From: Bartosz Golaszewski <hidden>
Date: 2025-11-18 09:47:24
Also in: linux-arm-msm, linux-gpio, linux-hardening, linux-sound, lkml

On Mon, Nov 17, 2025 at 9:33 PM Kees Cook [off-list ref] wrote:
On Wed, Nov 12, 2025 at 02:55:30PM +0100, Bartosz Golaszewski wrote:
quoted
From: Bartosz Golaszewski <redacted>

Implement a function for checking if a string ends with a different
string and add its kunit test cases.

Acked-by: Linus Walleij <redacted>
Signed-off-by: Bartosz Golaszewski <redacted>
---
Hi Kees!

Thanks for the review. I already queued this for v6.19, so let me
address the issues in a follow-up.
quoted
 include/linux/string.h   | 18 ++++++++++++++++++
 lib/tests/string_kunit.c | 13 +++++++++++++
 2 files changed, 31 insertions(+)
diff --git a/include/linux/string.h b/include/linux/string.h
index fdd3442c6bcbd786e177b6e87358e1065a0ffafc..929d05d1247c76eb9011fe34250b487834b2d3c9 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -562,4 +562,22 @@ static inline bool strstarts(const char *str, const char *prefix)
      return strncmp(str, prefix, strlen(prefix)) == 0;
 }

+/**
+ * strends - Check if a string ends with another string.
+ * @str - NULL-terminated string to check against @suffix
+ * @suffix - NULL-terminated string defining the suffix to look for in @str
+ *
+ * Returns:
+ * True if @str ends with @suffix. False in all other cases.
Maybe added "empty strings never match"?
But they do, please see the test.
quoted
+ */
+static inline bool strends(const char *str, const char *suffix)
These are required to be non-NULL, so we might want to consider marking
them as such with the "nonnull" attribute. We don't use it much in Linux
yet, but I do see a few places.

e.g.:

static inline bool __attribute__((nonnull(1,2)))
strends(const char *str, const char *suffix)
Ok.
quoted
+{
+     unsigned int str_len = strlen(str), suffix_len = strlen(suffix);
+
+     if (str_len < suffix_len)
+             return false;
+
+     return !(strcmp(str + str_len - suffix_len, suffix));
+}
We should probably add it to strlen and strcmp as well. :)
Sure but that's outside of the scope of this.

Bart
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help