aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
authorThorsten Blum <thorsten.blum@linux.dev>2026-04-15 14:25:45 +0200
committerKees Cook <kees@kernel.org>2026-05-13 10:54:08 -0700
commit8f64fb098a5b1dfea57989fdf732b6168f0e1c35 (patch)
tree026458de4d29d61bc179c04fa43b112d883d013c /lib
parent233e1ab980269394bfa78191ac12446cc6a22683 (diff)
downloadath-8f64fb098a5b1dfea57989fdf732b6168f0e1c35.tar.gz
lib/string_helpers: annotate struct strarray with __counted_by_ptr
Add the __counted_by_ptr() compiler attribute to 'array' to improve bounds checking via CONFIG_UBSAN_BOUNDS and CONFIG_FORTIFY_SOURCE. Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Link: https://patch.msgid.link/20260415122542.370926-6-thorsten.blum@linux.dev Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/string_helpers.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/string_helpers.c b/lib/string_helpers.c
index 6a8db441b6fd1..98d6ed0eaab7e 100644
--- a/lib/string_helpers.c
+++ b/lib/string_helpers.c
@@ -805,7 +805,7 @@ void kfree_strarray(char **array, size_t n)
EXPORT_SYMBOL_GPL(kfree_strarray);
struct strarray {
- char **array;
+ char **array __counted_by_ptr(n);
size_t n;
};
@@ -824,13 +824,13 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
if (!ptr)
return ERR_PTR(-ENOMEM);
+ ptr->n = n;
ptr->array = kasprintf_strarray(GFP_KERNEL, prefix, n);
if (!ptr->array) {
devres_free(ptr);
return ERR_PTR(-ENOMEM);
}
- ptr->n = n;
devres_add(dev, ptr);
return ptr->array;