mm/cma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Replace snprintf("%s", ...) with the faster and more direct strscpy().
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
mm/cma.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/cma.c b/mm/cma.c
index 813e6dc7b095..44b43de28c13 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -22,6 +22,7 @@
#include <linux/mm.h>
#include <linux/sizes.h>
#include <linux/slab.h>
+#include <linux/string.h>
#include <linux/string_choices.h>
#include <linux/log2.h>
#include <linux/cma.h>
@@ -233,7 +234,7 @@ static int __init cma_new_area(const char *name, phys_addr_t size,
cma_area_count++;
if (name)
- snprintf(cma->name, CMA_MAX_NAME, "%s", name);
+ strscpy(cma->name, name);
else
snprintf(cma->name, CMA_MAX_NAME, "cma%d\n", cma_area_count);
--
Thorsten Blum <thorsten.blum@linux.dev>
GPG: 1D60 735E 8AEF 3BE4 73B6 9D84 7336 78FD 8DFE EAD4
Hello Thorsten,
On Mon, 26 Jan 2026 18:45:15 +0100 Thorsten Blum <thorsten.blum@linux.dev> wrote:
> Replace snprintf("%s", ...) with the faster and more direct strscpy().
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
> mm/cma.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/cma.c b/mm/cma.c
> index 813e6dc7b095..44b43de28c13 100644
> --- a/mm/cma.c
> +++ b/mm/cma.c
> @@ -22,6 +22,7 @@
> #include <linux/mm.h>
> #include <linux/sizes.h>
> #include <linux/slab.h>
> +#include <linux/string.h>
> #include <linux/string_choices.h>
> #include <linux/log2.h>
> #include <linux/cma.h>
> @@ -233,7 +234,7 @@ static int __init cma_new_area(const char *name, phys_addr_t size,
> cma_area_count++;
>
> if (name)
> - snprintf(cma->name, CMA_MAX_NAME, "%s", name);
> + strscpy(cma->name, name);
Any reason to drop CMA_MAX_NAME protection? You can pass the size of
destination buffer as the third argument of strscpy().
Thanks,
SJ
[...]
On Mon, 26 Jan 2026 16:47:22 -0800 SeongJae Park <sj@kernel.org> wrote: > > @@ -233,7 +234,7 @@ static int __init cma_new_area(const char *name, phys_addr_t size, > > cma_area_count++; > > > > if (name) > > - snprintf(cma->name, CMA_MAX_NAME, "%s", name); > > + strscpy(cma->name, name); > > Any reason to drop CMA_MAX_NAME protection? You can pass the size of > destination buffer as the third argument of strscpy(). strscpy() will now use sizeof(cma->name): char name[CMA_MAX_NAME];
On Mon, 26 Jan 2026 16:54:50 -0800 Andrew Morton <akpm@linux-foundation.org> wrote: > On Mon, 26 Jan 2026 16:47:22 -0800 SeongJae Park <sj@kernel.org> wrote: > > > > @@ -233,7 +234,7 @@ static int __init cma_new_area(const char *name, phys_addr_t size, > > > cma_area_count++; > > > > > > if (name) > > > - snprintf(cma->name, CMA_MAX_NAME, "%s", name); > > > + strscpy(cma->name, name); > > > > Any reason to drop CMA_MAX_NAME protection? You can pass the size of > > destination buffer as the third argument of strscpy(). > > strscpy() will now use sizeof(cma->name): > > char name[CMA_MAX_NAME]; Ah, you're right. Reviewed-by: SeongJae Park <sj@kernel.org> Thanks, SJ
© 2016 - 2026 Red Hat, Inc.