Do not go beyond ARRAY_SIZE of args.args

Signed-off-by: Roel Kluin <roel.kl...@gmail.com>
---
I'm quite sure the first is correct, but should maybe `args.nret'
and `nargs + args.nret' also be `>= ARRAY_SIZE(args.args)'?

diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 1f8505c..c94ab76 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -779,7 +779,7 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
                return -EFAULT;
 
        nargs = args.nargs;
-       if (nargs > ARRAY_SIZE(args.args)
+       if (nargs >= ARRAY_SIZE(args.args)
            || args.nret > ARRAY_SIZE(args.args)
            || nargs + args.nret > ARRAY_SIZE(args.args))
                return -EINVAL;

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

Reply via email to