From f64991603db1e96384e37265a9194956a1e5cb66 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Sun, 1 May 2005 08:58:42 -0700 Subject: [PATCH] --- yaml --- r: 645 b: refs/heads/master c: d5812a77e5803468a5033be91af978be0f7a17d9 h: refs/heads/master i: 643: c08c42af5d40aa789b0c74e1497865705084a6ad v: v3 --- [refs] | 2 +- trunk/arch/ppc/kernel/align.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 35fa2f3ba4b3..097850027c00 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b20cc8aff258eea5a2339107605ebea949fa6ecf +refs/heads/master: d5812a77e5803468a5033be91af978be0f7a17d9 diff --git a/trunk/arch/ppc/kernel/align.c b/trunk/arch/ppc/kernel/align.c index 40d356c66c41..ff81da9598d8 100644 --- a/trunk/arch/ppc/kernel/align.c +++ b/trunk/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 *) ®s->gpr[reg]; if (flags & LD) { for (i = 0; i < nb; ++i)