Commit 4b41b953 authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman

tty: Prevent tty teardown during tty_write_message()

tty_write_message() allows the caller to directly write to a specific
tty. Since the line discipline is bypassed for the direct write,
nothing prevents the tty from being torn down after the tty count is
checked.

Hold the tty lock for the duration of the direct write.
Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1e86b5bf
...@@ -1200,11 +1200,9 @@ void tty_write_message(struct tty_struct *tty, char *msg) ...@@ -1200,11 +1200,9 @@ void tty_write_message(struct tty_struct *tty, char *msg)
if (tty) { if (tty) {
mutex_lock(&tty->atomic_write_lock); mutex_lock(&tty->atomic_write_lock);
tty_lock(tty); tty_lock(tty);
if (tty->ops->write && tty->count > 0) { if (tty->ops->write && tty->count > 0)
tty_unlock(tty);
tty->ops->write(tty, msg, strlen(msg)); tty->ops->write(tty, msg, strlen(msg));
} else tty_unlock(tty);
tty_unlock(tty);
tty_write_unlock(tty); tty_write_unlock(tty);
} }
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment