From: Catalin Marinas <catalin.marinas@arm.com>
To: Yafang Shao <laoar.shao@gmail.com>
Cc: torvalds@linux-foundation.org, ebiederm@xmission.com,
alexei.starovoitov@gmail.com, rostedt@goodmis.org,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
linux-trace-kernel@vger.kernel.org, audit@vger.kernel.org,
linux-security-module@vger.kernel.org, selinux@vger.kernel.org,
bpf@vger.kernel.org, netdev@vger.kernel.org,
dri-devel@lists.freedesktop.org,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH v2 06/10] mm/kmemleak: Replace strncpy() with __get_task_comm()
Date: Thu, 13 Jun 2024 09:37:15 +0100 [thread overview]
Message-ID: <Zmqvu-1eUpdZ39PD@arm.com> (raw)
In-Reply-To: <20240613023044.45873-7-laoar.shao@gmail.com>
On Thu, Jun 13, 2024 at 10:30:40AM +0800, Yafang Shao wrote:
> Using __get_task_comm() to read the task comm ensures that the name is
> always NUL-terminated, regardless of the source string. This approach also
> facilitates future extensions to the task comm.
>
> Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> ---
> mm/kmemleak.c | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
> index d5b6fba44fc9..ef29aaab88a0 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -663,13 +663,7 @@ static struct kmemleak_object *__alloc_object(gfp_t gfp)
> strncpy(object->comm, "softirq", sizeof(object->comm));
> } else {
> object->pid = current->pid;
> - /*
> - * There is a small chance of a race with set_task_comm(),
> - * however using get_task_comm() here may cause locking
> - * dependency issues with current->alloc_lock. In the worst
> - * case, the command line is not correct.
> - */
> - strncpy(object->comm, current->comm, sizeof(object->comm));
> + __get_task_comm(object->comm, sizeof(object->comm), current);
> }
You deleted the comment stating why it does not use get_task_comm()
without explaining why it would be safe now. I don't recall the details
but most likely lockdep warned of some potential deadlocks with this
function being called with the task_lock held.
So, you either show why this is safe or just use strscpy() directly here
(not sure we'd need strscpy_pad(); I think strscpy() would do, we just
need the NUL-termination).
--
Catalin
next prev parent reply other threads:[~2024-06-13 8:37 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 2:30 [PATCH v2 00/10] Improve the copy of task comm Yafang Shao
2024-06-13 2:30 ` [PATCH v2 01/10] fs/exec: Drop task_lock() inside __get_task_comm() Yafang Shao
2024-06-13 2:30 ` [PATCH v2 02/10] auditsc: Replace memcpy() with __get_task_comm() Yafang Shao
2024-06-13 2:30 ` [PATCH v2 03/10] security: " Yafang Shao
2024-06-13 2:30 ` [PATCH v2 04/10] bpftool: Ensure task comm is always NUL-terminated Yafang Shao
2024-06-13 2:30 ` [PATCH v2 05/10] mm/util: Fix possible race condition in kstrdup() Yafang Shao
2024-06-13 21:14 ` Andrew Morton
2024-06-13 22:17 ` Linus Torvalds
2024-06-14 2:41 ` Yafang Shao
2024-06-14 2:33 ` Yafang Shao
2024-06-13 2:30 ` [PATCH v2 06/10] mm/kmemleak: Replace strncpy() with __get_task_comm() Yafang Shao
2024-06-13 8:37 ` Catalin Marinas [this message]
2024-06-13 12:10 ` Yafang Shao
2024-06-14 10:57 ` Catalin Marinas
2024-06-14 11:45 ` Yafang Shao
2024-06-13 2:30 ` [PATCH v2 07/10] tsacct: " Yafang Shao
2024-06-13 2:30 ` [PATCH v2 08/10] tracing: " Yafang Shao
2024-06-13 2:30 ` [PATCH v2 09/10] net: Replace strcpy() " Yafang Shao
2024-06-13 2:30 ` [PATCH v2 10/10] drm: " Yafang Shao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zmqvu-1eUpdZ39PD@arm.com \
--to=catalin.marinas@arm.com \
--cc=akpm@linux-foundation.org \
--cc=alexei.starovoitov@gmail.com \
--cc=audit@vger.kernel.org \
--cc=bpf@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=ebiederm@xmission.com \
--cc=laoar.shao@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=selinux@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.