From 93d4dbdc8da0b8a3ba86f4a08868084f8da872e1 Mon Sep 17 00:00:00 2001 From: Thorsten Blum Date: Thu, 6 Nov 2025 15:51:38 +0100 Subject: [PATCH] apparmor: Replace deprecated strcpy in d_namespace_path strcpy() is deprecated; replace it with a direct '/' assignment. The buffer is already NUL-terminated, so there is no need to copy an additional NUL terminator as strcpy() did. Update the comment and add the local variable 'is_root' for clarity. Closes: https://github.com/KSPP/linux/issues/88 Signed-off-by: Thorsten Blum Signed-off-by: John Johansen --- security/apparmor/path.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/security/apparmor/path.c b/security/apparmor/path.c index d6c74c357ffd5..65a0ca5cc1bdd 100644 --- a/security/apparmor/path.c +++ b/security/apparmor/path.c @@ -164,12 +164,15 @@ static int d_namespace_path(const struct path *path, char *buf, char **name, } out: - /* - * Append "/" to the pathname. The root directory is a special - * case; it already ends in slash. + /* Append "/" to directory paths, except for root "/" which + * already ends in a slash. */ - if (!error && isdir && ((*name)[1] != '\0' || (*name)[0] != '/')) - strcpy(&buf[aa_g_path_max - 2], "/"); + if (!error && isdir) { + bool is_root = (*name)[0] == '/' && (*name)[1] == '\0'; + + if (!is_root) + buf[aa_g_path_max - 2] = '/'; + } return error; } -- 2.47.3