Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aace880f authored by Al Viro's avatar Al Viro
Browse files

parisc: fix copy_from_user()



Cc: stable@vger.kernel.org
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent acb2505d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
#include <asm-generic/uaccess-unaligned.h>

#include <linux/bug.h>
#include <linux/string.h>

#define VERIFY_READ 0
#define VERIFY_WRITE 1
@@ -221,13 +222,14 @@ static inline unsigned long __must_check copy_from_user(void *to,
                                          unsigned long n)
{
        int sz = __compiletime_object_size(to);
        int ret = -EFAULT;
        unsigned long ret = n;

        if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
                ret = __copy_from_user(to, from, n);
        else
                copy_from_user_overflow();

	if (unlikely(ret))
		memset(to + (n - ret), 0, ret);
        return ret;
}