]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
lib/string_helpers: drop redundant allocation in kasprintf_strarray
authorThorsten Blum <thorsten.blum@linux.dev>
Wed, 15 Apr 2026 12:25:43 +0000 (14:25 +0200)
committerKees Cook <kees@kernel.org>
Wed, 13 May 2026 17:54:08 +0000 (10:54 -0700)
kasprintf_strarray() returns an array of N strings and kfree_strarray()
also frees N entries.  However, kasprintf_strarray() currently allocates
N+1 char pointers.  Allocate exactly N pointers instead of N+1.

Also update the kernel-doc for @n.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://patch.msgid.link/20260415122542.370926-4-thorsten.blum@linux.dev
Signed-off-by: Kees Cook <kees@kernel.org>
lib/string_helpers.c

index 169eaf583494914baf97dd42a2fd1b0e48beac03..6a8db441b6fd173f87098e5b466c64397642e6dd 100644 (file)
@@ -752,7 +752,7 @@ EXPORT_SYMBOL_GPL(kstrdup_and_replace);
  * kasprintf_strarray - allocate and fill array of sequential strings
  * @gfp: flags for the slab allocator
  * @prefix: prefix to be used
- * @n: amount of lines to be allocated and filled
+ * @n: number of strings to be allocated and filled
  *
  * Allocates and fills @n strings using pattern "%s-%zu", where prefix
  * is provided by caller. The caller is responsible to free them with
@@ -765,7 +765,7 @@ char **kasprintf_strarray(gfp_t gfp, const char *prefix, size_t n)
        char **names;
        size_t i;
 
-       names = kcalloc(n + 1, sizeof(char *), gfp);
+       names = kcalloc(n, sizeof(char *), gfp);
        if (!names)
                return NULL;