Skip to content

Commit

Permalink
USB: serial/mos*: prevent reading uninitialized stack memory
Browse files Browse the repository at this point in the history
The TIOCGICOUNT device ioctl in both mos7720.c and mos7840.c allows
unprivileged users to read uninitialized stack memory, because the
"reserved" member of the serial_icounter_struct struct declared on the
stack is not altered or zeroed before being copied back to the user.
This patch takes care of it.

Signed-off-by: Dan Rosenberg <dan.j.rosenberg@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Dan Rosenberg authored and Greg Kroah-Hartman committed Sep 20, 2010
1 parent fc8f2a7 commit a0846f1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/usb/serial/mos7720.c
Original file line number Diff line number Diff line change
Expand Up @@ -2024,6 +2024,9 @@ static int mos7720_ioctl(struct tty_struct *tty, struct file *file,

case TIOCGICOUNT:
cnow = mos7720_port->icount;

memset(&icount, 0, sizeof(struct serial_icounter_struct));

icount.cts = cnow.cts;
icount.dsr = cnow.dsr;
icount.rng = cnow.rng;
Expand Down
3 changes: 3 additions & 0 deletions drivers/usb/serial/mos7840.c
Original file line number Diff line number Diff line change
Expand Up @@ -2285,6 +2285,9 @@ static int mos7840_ioctl(struct tty_struct *tty, struct file *file,
case TIOCGICOUNT:
cnow = mos7840_port->icount;
smp_rmb();

memset(&icount, 0, sizeof(struct serial_icounter_struct));

icount.cts = cnow.cts;
icount.dsr = cnow.dsr;
icount.rng = cnow.rng;
Expand Down

0 comments on commit a0846f1

Please sign in to comment.