tty: fix read of tty->pgrp outside of ctrl_lock
authorDavid Emett <dave@sp4m.net>
Sun, 10 Mar 2019 21:43:47 +0000 (21:43 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Mar 2019 16:28:23 +0000 (01:28 +0900)
The intention was clearly to use the tty_pgrp local variable rather than
re-read tty->pgrp outside of ctrl_lock, so do that.

This bug was introduced by commit 2812d9e9fd94 ("tty: Combine
SIGTTOU/SIGTTIN handling").

Signed-off-by: David Emett <dave@sp4m.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_jobctrl.c

index 1393f71..f8ed50a 100644 (file)
@@ -44,7 +44,7 @@ int __tty_check_change(struct tty_struct *tty, int sig)
        tty_pgrp = tty->pgrp;
        spin_unlock_irqrestore(&tty->ctrl_lock, flags);
 
-       if (tty_pgrp && pgrp != tty->pgrp) {
+       if (tty_pgrp && pgrp != tty_pgrp) {
                if (is_ignored(sig)) {
                        if (sig == SIGTTIN)
                                ret = -EIO;