aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/kernel/align.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc/kernel/align.c')
-rw-r--r--arch/ppc/kernel/align.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/ppc/kernel/align.c b/arch/ppc/kernel/align.c
index 40d356c66c41..ff81da9598d8 100644
--- a/arch/ppc/kernel/align.c
+++ b/arch/ppc/kernel/align.c
@@ -290,6 +290,10 @@ fix_alignment(struct pt_regs *regs)
/* lwm, stmw */
nb = (32 - reg) * 4;
}
+
+ if (!access_ok((flags & ST? VERIFY_WRITE: VERIFY_READ), addr, nb+nb0))
+ return -EFAULT; /* bad address */
+
rptr = (unsigned char *) &regs->gpr[reg];
if (flags & LD) {
for (i = 0; i < nb; ++i)