| From: Kees Cook <kees@kernel.org> |
| Subject: mm/kmemleak: replace strncpy() with strscpy() |
| Date: Tue, 9 Jul 2024 17:13:08 -0700 |
| |
| Replace the depreciated[1] strncpy() calls with strscpy(). Uses of |
| object->comm do not depend on the padding side-effect. |
| |
| Link: https://github.com/KSPP/linux/issues/90 [1] |
| Link: https://lkml.kernel.org/r/20240710001300.work.004-kees@kernel.org |
| Signed-off-by: Kees Cook <kees@kernel.org> |
| Acked-by: Catalin Marinas <catalin.marinas@arm.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/kmemleak.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/mm/kmemleak.c~mm-kmemleak-replace-strncpy-with-strscpy |
| +++ a/mm/kmemleak.c |
| @@ -657,10 +657,10 @@ static struct kmemleak_object *__alloc_o |
| /* task information */ |
| if (in_hardirq()) { |
| object->pid = 0; |
| - strncpy(object->comm, "hardirq", sizeof(object->comm)); |
| + strscpy(object->comm, "hardirq"); |
| } else if (in_serving_softirq()) { |
| object->pid = 0; |
| - strncpy(object->comm, "softirq", sizeof(object->comm)); |
| + strscpy(object->comm, "softirq"); |
| } else { |
| object->pid = current->pid; |
| /* |
| @@ -669,7 +669,7 @@ static struct kmemleak_object *__alloc_o |
| * dependency issues with current->alloc_lock. In the worst |
| * case, the command line is not correct. |
| */ |
| - strncpy(object->comm, current->comm, sizeof(object->comm)); |
| + strscpy(object->comm, current->comm); |
| } |
| |
| /* kernel backtrace */ |
| _ |