The kernel copy of the rtas args struct that is read in from
user space is a stack variable.  This structure should be
zero'ed out before we do any reads/writes to/from the user
when handling a rtas call request.  This patch adds a memset
to do this.

I am seeing an issue in testing partition mobility, where the
parts of the rtas args struct that return status top the user
contain stale data.

Signed-off-by: Nathan Fontenot <[EMAIL PROTECTED],ibm.com>
---

Index: linux-2.6.git/arch/powerpc/kernel/rtas.c
===================================================================
--- linux-2.6.git.orig/arch/powerpc/kernel/rtas.c       2008-07-22 
09:34:03.000000000 -0500
+++ linux-2.6.git/arch/powerpc/kernel/rtas.c    2008-07-25 16:06:00.000000000 
-0500
@@ -775,6 +775,8 @@
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;

+       memset(&args, 0, sizeof(args));
+
        if (copy_from_user(&args, uargs, 3 * sizeof(u32)) != 0)
                return -EFAULT;

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to