diff options
| author | Ingo Molnar <mingo@kernel.org> | 2015-09-13 12:25:35 +0300 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2015-09-13 12:25:35 +0300 | 
| commit | d2bb1d42b95fa88f092623bbb8ed533f316b6a3c (patch) | |
| tree | fb796db809a266906fa358f24f1c07ced4df33f0 /drivers/message/fusion/mptctl.c | |
| parent | 3bd7617596df560e2cb22ad97888cb42dae39d02 (diff) | |
| parent | 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f (diff) | |
| download | linux-d2bb1d42b95fa88f092623bbb8ed533f316b6a3c.tar.xz | |
Merge tag 'v4.3-rc1' into perf/core, to refresh the tree
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/message/fusion/mptctl.c')
| -rw-r--r-- | drivers/message/fusion/mptctl.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c index 70bb7530b22c..fc7393729081 100644 --- a/drivers/message/fusion/mptctl.c +++ b/drivers/message/fusion/mptctl.c @@ -1859,6 +1859,15 @@ mptctl_do_mpt_command (struct mpt_ioctl_command karg, void __user *mfPtr)  	}  	spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags); +	/* Basic sanity checks to prevent underflows or integer overflows */ +	if (karg.maxReplyBytes < 0 || +	    karg.dataInSize < 0 || +	    karg.dataOutSize < 0 || +	    karg.dataSgeOffset < 0 || +	    karg.maxSenseBytes < 0 || +	    karg.dataSgeOffset > ioc->req_sz / 4) +		return -EINVAL; +  	/* Verify that the final request frame will not be too large.  	 */  	sz = karg.dataSgeOffset * 4;  | 
