[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5440CC07.3000205@nod.at>
Date: Fri, 17 Oct 2014 09:57:59 +0200
From: Richard Weinberger <richard@....at>
To: Peter Hurley <peter@...leysoftware.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
CC: linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org,
Jiri Slaby <jslaby@...e.cz>,
One Thousand Gnomes <gnomes@...rguk.ukuu.org.uk>,
Jeff Dike <jdike@...toit.com>,
user-mode-linux-devel@...ts.sourceforge.net
Subject: Re: [PATCH -next 04/10] uml: Fix unsafe pid reference to foreground
process group
Am 16.10.2014 um 20:59 schrieb Peter Hurley:
> Although the tty core maintains a pid reference for the foreground
> process group, if the foreground process group is changed that
> pid reference is dropped. Thus, the pid reference used for signalling
> could become stale.
>
> Safely obtain a pid reference to the foreground process group and
> release the reference after signalling is complete.
>
> cc: Jeff Dike <jdike@...toit.com>
> cc: Richard Weinberger <richard@....at>
> cc: user-mode-linux-devel@...ts.sourceforge.net
> Signed-off-by: Peter Hurley <peter@...leysoftware.com>
Acked-by: Richard Weinberger <richard@....at>
> ---
> arch/um/drivers/line.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
> index 8035145..6208702 100644
> --- a/arch/um/drivers/line.c
> +++ b/arch/um/drivers/line.c
> @@ -632,6 +632,7 @@ static irqreturn_t winch_interrupt(int irq, void *data)
> int fd = winch->fd;
> int err;
> char c;
> + struct pid *pgrp;
>
> if (fd != -1) {
> err = generic_read(fd, &c, NULL);
> @@ -657,7 +658,10 @@ static irqreturn_t winch_interrupt(int irq, void *data)
> if (line != NULL) {
> chan_window_size(line, &tty->winsize.ws_row,
> &tty->winsize.ws_col);
> - kill_pgrp(tty->pgrp, SIGWINCH, 1);
> + pgrp = tty_get_pgrp(tty);
> + if (pgrp)
> + kill_pgrp(pgrp, SIGWINCH, 1);
> + put_pid(pgrp);
> }
> tty_kref_put(tty);
> }
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists