|
@@ -252,9 +252,7 @@ static inline unsigned long __must_check
|
|
|
copy_to_user(void __user *to, const void *from, unsigned long n)
|
|
|
{
|
|
|
might_fault();
|
|
|
- if (access_ok(VERIFY_WRITE, to, n))
|
|
|
- n = __copy_to_user(to, from, n);
|
|
|
- return n;
|
|
|
+ return __copy_to_user(to, from, n);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -315,11 +313,7 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
|
|
|
copy_from_user_overflow();
|
|
|
return n;
|
|
|
}
|
|
|
- if (access_ok(VERIFY_READ, from, n))
|
|
|
- n = __copy_from_user(to, from, n);
|
|
|
- else
|
|
|
- memset(to, 0, n);
|
|
|
- return n;
|
|
|
+ return __copy_from_user(to, from, n);
|
|
|
}
|
|
|
|
|
|
static inline unsigned long __must_check
|
|
@@ -332,9 +326,7 @@ static inline unsigned long __must_check
|
|
|
copy_in_user(void __user *to, const void __user *from, unsigned long n)
|
|
|
{
|
|
|
might_fault();
|
|
|
- if (__access_ok(from,n) && __access_ok(to,n))
|
|
|
- n = __copy_in_user(to, from, n);
|
|
|
- return n;
|
|
|
+ return __copy_in_user(to, from, n);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -343,11 +335,8 @@ copy_in_user(void __user *to, const void __user *from, unsigned long n)
|
|
|
static inline long __must_check
|
|
|
strncpy_from_user(char *dst, const char __user *src, long count)
|
|
|
{
|
|
|
- long res = -EFAULT;
|
|
|
might_fault();
|
|
|
- if (access_ok(VERIFY_READ, src, 1))
|
|
|
- res = uaccess.strncpy_from_user(count, src, dst);
|
|
|
- return res;
|
|
|
+ return uaccess.strncpy_from_user(count, src, dst);
|
|
|
}
|
|
|
|
|
|
static inline unsigned long
|
|
@@ -387,9 +376,7 @@ static inline unsigned long __must_check
|
|
|
clear_user(void __user *to, unsigned long n)
|
|
|
{
|
|
|
might_fault();
|
|
|
- if (access_ok(VERIFY_WRITE, to, n))
|
|
|
- n = uaccess.clear_user(n, to);
|
|
|
- return n;
|
|
|
+ return uaccess.clear_user(n, to);
|
|
|
}
|
|
|
|
|
|
extern int copy_to_user_real(void __user *dest, void *src, size_t count);
|