From: Johan Hovold <johan@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jirislaby@kernel.org>
Cc: David Lin <dtwlin@gmail.com>, Alex Elder <elder@kernel.org>,
Oliver Neukum <oneukum@suse.com>,
linux-usb@vger.kernel.org, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org,
Chengfeng Ye <nicoyip.dev@gmail.com>,
stable@vger.kernel.org
Subject: Re: [PATCH] tty: fix saved termios reset race
Date: Wed, 30 Sep 2026 11:28:46 +0200 [thread overview]
Message-ID: <arzWTv2cslkhyt6V@hovoldconsulting.com> (raw)
In-Reply-To: <20260930091938.1715754-1-johan@kernel.org>
On Wed, Sep 30, 2026 at 11:19:38AM +0200, Johan Hovold wrote:
> Resetting saved termios state on device registration is needed where a
> minor number can be reused for an entirely different device and where
> the old settings may prevent the port from even being opened (e.g. when
> CLOCAL is not set).
>
> Not all TTY drivers guarantee that the minor number is no longer in use
> when registering devices however, something which can lead to a
> use-after-free when closing a TTY (and saving its termios) races with
> re-registration.
>
> Add a new TTY_DRIVER_RESET_SAVED_TERMIOS flag to request that any saved
> termios state is reset on registration and only set it for drivers that
> make sure that the minor number is no longer in use.
>
> Fixes: 93857edd9829 ("tty: reset termios state on device registration")
> Reported-by: Chengfeng Ye <nicoyip.dev@gmail.com>
> Link: https://lore.kernel.org/20260926184154.3017929-1-nicoyip.dev@gmail.com
> Cc: stable@vger.kernel.org # 4.12
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
> if (!(driver->flags & TTY_DRIVER_DYNAMIC_ALLOC)) {
> - /*
> - * Free any saved termios data so that the termios state is
> - * reset when reusing a minor number.
> - */
> - tp = driver->termios[index];
> - if (tp) {
> - driver->termios[index] = NULL;
> - kfree(tp);
> + if (driver->flags && TTY_DRIVER_RESET_SAVED_TERMIOS) {
This was of course meant to be a bitwise & as Sashiko noted.
I'll wait a bit before sending a v2.
Johan
prev parent reply other threads:[~2026-09-30 9:28 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-30 9:19 [PATCH] tty: fix saved termios reset race Johan Hovold
2026-09-30 9:24 ` sashiko-bot
2026-09-30 9:28 ` Johan Hovold [this message]
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=arzWTv2cslkhyt6V@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=dtwlin@gmail.com \
--cc=elder@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=nicoyip.dev@gmail.com \
--cc=oneukum@suse.com \
--cc=stable@vger.kernel.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.