user_msg[0] is copied in twice from user space. It contains size and is
critical. The fix ensures it is not changed in the second copy.

Signed-off-by: Kangjie Lu <k...@umn.edu>
---
 drivers/scsi/dpt_i2o.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index 93bd1d1bd5b5..2294520842e0 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -1850,6 +1850,8 @@ static int adpt_i2o_passthru(adpt_hba* pHba, u32 __user 
*arg)
                        rcode = -EFAULT;
                        goto cleanup;
                }
+               /* Ensure it is not changed in the second copy */
+               msg[0] = size;
                sg_count = (size - sg_offset*4) / sizeof(struct 
sg_simple_element);
 
                // TODO add 64 bit API
-- 
2.17.2 (Apple Git-113)

Reply via email to