Patch "[PATCH 064/135] megaraid_sas: Fix SMAP issue" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
[PATCH 064/135] megaraid_sas: Fix SMAP issue
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
0064-megaraid_sas-Fix-SMAP-issue.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1e089e2cf0c34407a09bbf8e75ca34082cb9d85fMon Sep 17 00:00:00 2001
From: Sumit Saxena <[email protected]>
Date: Thu, 28 Jan 2016 21:14:26 +0530
Subject: [PATCH 064/135] megaraid_sas: Fix SMAP issue
[ Upstream commit ea1c928bb6051ec4ccf24826898aa2361eaa71e5 ]
Inside compat IOCTL hook of driver, driver was using wrong address of ioc->frame.raw which leads sense_ioc_ptr to be calculated wrongly and failing IOCTL.
--- drivers/scsi/megaraid/megaraid_sas_base.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
drivers/scsi/megaraid/megaraid_sas_base.c +6 -7
@@ -6476,9 +6476,9 @@ static int megasas_mgmt_compat_ioctl_fw(int i;int error =0 ;compat_uptr_t ptr; -unsigned long local_raw_ptr;u32 local_sense_off;u32 local_sense_len; +u32 user_sense_off;if (clear_user (ioc,sizeof (*ioc)))return -EFAULT ;
@@ -6496,17 +6496,16 @@ static int megasas_mgmt_compat_ioctl_fw(* sense_len is not null, so prepare the 64bit value under * the same condition. */ -if (get_user (local_raw_ptr, ioc->frame.raw) || -get_user (local_sense_off, &ioc->sense_off) || -get_user (local_sense_len, &ioc->sense_len)) +if (get_user (local_sense_off, &ioc->sense_off) || +get_user (local_sense_len, &ioc->sense_len) || +get_user (user_sense_off, &cioc->sense_off))return -EFAULT ; -if (local_sense_len) {void __user **sense_ioc_ptr = - (void __user **)((u8 *)local_raw_ptr + local_sense_off); + (void __user **)((u8 *)((unsigned long )&ioc->frame.raw) + local_sense_off);compat_uptr_t *sense_cioc_ptr = - (compat_uptr_t *)(cioc->frame.raw + cioc->sense_off); + (compat_uptr_t *)(((unsigned long )&cioc->frame.raw) + user_sense_off);if (get_user (ptr, sense_cioc_ptr) ||put_user (compat_ptr (ptr), sense_ioc_ptr))return -EFAULT ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/0063-megaraid_sas-Do-not-allow-PCI-access-during-OCR.patch queue-4.4/0064-megaraid_sas-Fix-SMAP-issue.patch queue-4.4/0062-megaraid-Fix-possible-NULL-pointer-deference-in-mrai.patch