From: sashiko-bot@kernel.org
To: "Vincent Donnefort" <vdonnefort@google.com>,
linux-trace-kernel@vger.kernel.org
Subject: Re: [PATCH v8 02/21] tracing/remotes: Release tracefs,eventfs on registration failure
Date: Fri, 06 Nov 2026 18:21:41 +0000 [thread overview]
Message-ID: <sashiko-outbox-202014@kernel.org> (raw)
In-Reply-To: <20261106180657.2460376-3-vdonnefort@google.com>
Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [Medium] tracing/remotes: NULL deref in trace_remote_init_eventfs()
under lockdown
- [Low] tracing/remotes: missing Fixes trailers for
trace_remote_register() leaks
--
commit 02468907e3da178a9b587aedf4931ee736d0fcda
Author: Vincent Donnefort <vdonnefort@google.com>
> tracing/remotes: Release tracefs,eventfs on registration failure
>
> In trace_remote_register(), if registration of events or the init
> callback fails, the created tracefs and eventfs directories are leaked.
>
> Release the entire eventfs and tracefs hierarchy on trace_remote
> registration failure.
>
> Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
[Severity: Low]
This fixes resource leaks on the trace_remote_register() error paths.
Should it include Fixes: tags for the commits that introduced them:
Fixes: 072529158e60 ("tracing: Add events to trace remotes")
Fixes: bf2ba0f8ca1a ("tracing: Add init callback to trace remotes")
> diff --git a/kernel/trace/trace_remote.c b/kernel/trace/trace_remote.c
> index e8cbbd01964df..10091ff9d42ab 100644
> --- a/kernel/trace/trace_remote.c
> +++ b/kernel/trace/trace_remote.c
[ ... ]
> @@ -1374,35 +1395,37 @@ static int trace_remote_init_eventfs(const char *remote_name, struct trace_remot
> .callback = remote_event_callback,
> }
> };
> - bool eventfs_create = false;
> + struct eventfs_inode *eventfs_root, *eventfs_subdir, *e;
>
> - if (!eventfs) {
> - eventfs = eventfs_create_events_dir("events", remote->dentry, dir_entries,
> - ARRAY_SIZE(dir_entries), remote);
> - if (IS_ERR(eventfs))
> - return PTR_ERR(eventfs);
> + eventfs_root = remote->eventfs_root;
> + eventfs_subdir = remote->eventfs_subdir;
> + if (!eventfs_root) {
> + eventfs_root = eventfs_create_events_dir("events", remote->dentry, dir_entries,
> + ARRAY_SIZE(dir_entries), remote);
> + if (IS_ERR(eventfs_root))
> + return PTR_ERR(eventfs_root);
>
> /*
> * Create similar hierarchy as local events even if a single system is supported at
> * the moment
> */
> - eventfs = eventfs_create_dir(remote_name, eventfs, NULL, 0, NULL);
> - if (IS_ERR(eventfs))
> - return PTR_ERR(eventfs);
> -
> - remote->eventfs = eventfs;
> - eventfs_create = true;
> + eventfs_subdir = eventfs_create_dir(remote_name, eventfs_root, NULL, 0, NULL);
> + if (IS_ERR(eventfs_subdir)) {
> + eventfs_remove_events_dir(eventfs_root);
> + return PTR_ERR(eventfs_subdir);
> + }
> }
[Severity: Medium]
Can this dereference a NULL eventfs_root in eventfs_remove_events_dir() if
kernel lockdown becomes active between trace_remote_init_tracefs() and
trace_remote_init_eventfs()?
When security_locked_down(LOCKDOWN_TRACEFS) is true,
eventfs_create_events_dir() returns NULL rather than an ERR_PTR.
IS_ERR(eventfs_root) does not catch NULL, so eventfs_create_dir() is called
with a NULL parent and returns ERR_PTR(-EINVAL). The new cleanup path then
passes eventfs_root == NULL to eventfs_remove_events_dir(), which
unconditionally dereferences it in get_root_inode().
Checking IS_ERR_OR_NULL(eventfs_root) or !eventfs_root after
eventfs_create_events_dir() would avoid this regression.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261106180657.2460376-1-vdonnefort@google.com?part=2
next prev parent reply other threads:[~2026-11-06 18:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 18:06 [PATCH v8 00/21] tracing/remotes: Add printk, dump_on_panic and boot parameters Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 01/21] tracing/remotes: Gate tracefs files opening on trace remote registration Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 02/21] tracing/remotes: Release tracefs,eventfs on registration failure Vincent Donnefort
2026-11-06 18:21 ` sashiko-bot [this message]
2026-11-06 18:06 ` [PATCH v8 03/21] tracing/remotes: Use kstrtobool for boolean tracefs files Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 04/21] tracing/remotes: Initialise pos in trace_start() Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 05/21] tracing/remotes: Annotate remote shared fields with READ_ONCE/WRITE_ONCE Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 06/21] tracing/remotes: Use a single per-remote polling work Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 07/21] tracing/simple_ring_buffer: Add support for compressed length Vincent Donnefort
2026-11-06 18:20 ` sashiko-bot
2026-11-06 18:06 ` [PATCH v8 08/21] tracing/remotes: Add dmesg tracefs file Vincent Donnefort
2026-11-06 18:26 ` sashiko-bot
2026-11-06 18:06 ` [PATCH v8 09/21] tracing/remotes: selftests: Add a test for the " Vincent Donnefort
2026-11-06 18:26 ` sashiko-bot
2026-11-06 18:06 ` [PATCH v8 10/21] tracing/remotes: selftests: Prefix hypervisor folder Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 11/21] ring-buffer: Use irqsave for the reader lock in ring_buffer_poll_remote Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 12/21] ring-buffer: Avoid reader_lock deadlock during panic Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 13/21] ring-buffer: Use panic-friendly locking in ring_buffer_iter interface Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 14/21] ring-buffer: Add kerneldoc for ring_buffer_poll_remote Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 15/21] tracing/remotes: Use ring_buffer_capacity() in trace_remote_has_cpu() Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 16/21] tracing/remotes: Add dump_on_panic tracefs file Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 17/21] tracing/remotes: selftests: Add a test for the " Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 18/21] tracing/remotes: Add poll_ms " Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 19/21] tracing/remotes: Add trace_remote cmdline options Vincent Donnefort
2026-11-06 18:33 ` sashiko-bot
2026-11-06 18:06 ` [PATCH v8 20/21] Documentation: tracing/remotes: Add detailed tracefs layout Vincent Donnefort
2026-11-06 18:06 ` [PATCH v8 21/21] Documentation/kernel-parameters: Add trace_remote Vincent Donnefort
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=sashiko-outbox-202014@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=vdonnefort@google.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox