Blame view
lib/usercopy.c
764 Bytes
b24413180 License cleanup: ... |
1 |
// SPDX-License-Identifier: GPL-2.0 |
d597580d3 generic ...copy_.... |
2 3 4 5 6 7 8 9 |
#include <linux/uaccess.h> /* out-of-line parts */ #ifndef INLINE_COPY_FROM_USER unsigned long _copy_from_user(void *to, const void __user *from, unsigned long n) { unsigned long res = n; |
9c5f6908d copy_{from,to}_us... |
10 11 12 |
might_fault(); if (likely(access_ok(VERIFY_READ, from, n))) { kasan_check_write(to, n); |
d597580d3 generic ...copy_.... |
13 |
res = raw_copy_from_user(to, from, n); |
9c5f6908d copy_{from,to}_us... |
14 |
} |
d597580d3 generic ...copy_.... |
15 16 17 18 19 20 21 22 |
if (unlikely(res)) memset(to + (n - res), 0, res); return res; } EXPORT_SYMBOL(_copy_from_user); #endif #ifndef INLINE_COPY_TO_USER |
a0e94598e Fix misannotated ... |
23 |
unsigned long _copy_to_user(void __user *to, const void *from, unsigned long n) |
d597580d3 generic ...copy_.... |
24 |
{ |
9c5f6908d copy_{from,to}_us... |
25 26 27 |
might_fault(); if (likely(access_ok(VERIFY_WRITE, to, n))) { kasan_check_read(from, n); |
d597580d3 generic ...copy_.... |
28 |
n = raw_copy_to_user(to, from, n); |
9c5f6908d copy_{from,to}_us... |
29 |
} |
d597580d3 generic ...copy_.... |
30 31 32 33 |
return n; } EXPORT_SYMBOL(_copy_to_user); #endif |