Messages in this thread | | | Subject | Re: [PATCH v2 1/2] tty: fix compat TIOCGSERIAL leaking uninitialized memory | From | Jiri Slaby <> | Date | Tue, 25 Feb 2020 08:30:35 +0100 |
| |
On 24. 02. 20, 19:20, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > Commit 77654350306a ("take compat TIOC[SG]SERIAL treatment into > tty_compat_ioctl()") changed the compat version of TIOCGSERIAL to start > copying a whole 'serial_struct32' to userspace rather than individual > fields, but failed to initialize all padding and fields -- namely the > hole after the 'iomem_reg_shift' field, and the 'reserved' field. > > Fix this by initializing the struct to zero. > > [v2: use sizeof, and convert the adjacent line for consistency.] > > Reported-by: syzbot+8da9175e28eadcb203ce@syzkaller.appspotmail.com > Fixes: 77654350306a ("take compat TIOC[SG]SERIAL treatment into tty_compat_ioctl()") > Cc: <stable@vger.kernel.org> # v4.20+ > Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Jiri Slaby <jslaby@suse.cz>
> --- > drivers/tty/tty_io.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c > index 1fcf7ad83dfa0a..db4a13bc855ed6 100644 > --- a/drivers/tty/tty_io.c > +++ b/drivers/tty/tty_io.c > @@ -2730,7 +2730,9 @@ static int compat_tty_tiocgserial(struct tty_struct *tty, > struct serial_struct32 v32; > struct serial_struct v; > int err; > - memset(&v, 0, sizeof(struct serial_struct)); > + > + memset(&v, 0, sizeof(v)); > + memset(&v32, 0, sizeof(v32)); > > if (!tty->ops->set_serial) > return -ENOTTY; >
-- js suse labs
| |