summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHarsh Sahu <hsahu@codeaurora.org>2017-06-27 12:05:43 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-06-29 05:10:47 -0700
commitb32ded99dfc0e4af91dff5e5e9ac2dd55f5c23f9 (patch)
treeca1b388d91776fd15240b1dbf97ef9f93f77566e /drivers
parent41f7afc1898c3223ac4e3479499d3ccf11f81e58 (diff)
msm: sde: fix unaligned access problem
debug offset comes from the user and can hold any value which can cause unaligned access. This change fixes the unaligned access problem on debug offset by properly aligning it. Change-Id: Ie4de9a12433f6ffd568c6c86928b71a5537b0dff Signed-off-by: Harsh Sahu <hsahu@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c
index f41382b5b20c..1966fa9805c0 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_debug.c
@@ -1023,6 +1023,9 @@ static ssize_t sde_rotator_debug_base_offset_write(struct file *file,
if (sscanf(buf, "%5x %x", &off, &cnt) < 2)
return -EINVAL;
+ if (off % sizeof(u32))
+ return -EINVAL;
+
if (off > dbg->max_offset)
return -EINVAL;
@@ -1091,6 +1094,9 @@ static ssize_t sde_rotator_debug_base_reg_write(struct file *file,
if (cnt < 2)
return -EFAULT;
+ if (off % sizeof(u32))
+ return -EFAULT;
+
if (off >= dbg->max_offset)
return -EFAULT;
@@ -1139,6 +1145,9 @@ static ssize_t sde_rotator_debug_base_reg_read(struct file *file,
goto debug_read_error;
}
+ if (dbg->off % sizeof(u32))
+ return -EFAULT;
+
ptr = dbg->base + dbg->off;
tot = 0;