tree fe5fdcc013d3b0b7f648eec6bfdd49360cdf3531
parent 7816c45bf13255157c00fb8aca86cb64d825e878
author Vasiliy Kulikov <segoon@openwall.com> 1302796585 +0400
committer Greg Kroah-Hartman <gregkh@suse.de> 1303775122 -0700

staging: istallion: fix arbitrary kernel memory reads/writes

stli_brdstats is defined as global variable.  After de-BKL-ization in
the patch b4eda9cb48eac1b7 an access to the variable is not serialized
anymore.  This leads to the race window between the check and the use
in stli_getbrdstats():

        if (copy_from_user(&stli_brdstats, bp, sizeof(combrd_t)))
                return -EFAULT;
        if (stli_brdstats.brd >= STL_MAXBRDS) <<<
                return -ENODEV;
        brdp = stli_brds[stli_brdstats.brd];  <<<

If one process calls COM_GETBRDSTATS ioctl() with sane .brd, second
process calls COM_GETBRDSTATS ioctl() with invalid .brd, and the
second process' copy_from_user() executes exactly between the check and
stli_brds[] indexation of the first process, then the first process gets
contents of memory at *stli_brds[stli_brdstats.brd] address.  Also
the resulting .nrpanels field may be too big, in this case
stli_brdstats.panels array overflows.

Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
