···42424343# define __EX_TABLE_SECTION ".section __ex_table,\"a\"\n"44444545+#define user_addr_max() (uaccess_kernel() ? ~0UL : TASK_SIZE)4646+4547/*4648 * Zero Userspace4749 */···8381#define INLINE_COPY_TO_USER84828583extern long strncpy_from_user(char *__to, const char __user *__from,8686- long __len);8787-extern long strnlen_user(const char __user *s, long n);8484+ long __len);8585+extern __must_check long strlen_user(const char __user *str);8686+extern __must_check long strnlen_user(const char __user *s, long n);88878988/* Optimized macros */9089#define __get_user_asm(val, insn, addr, err) \
-33
arch/nios2/mm/uaccess.c
···128128 ".word 12b,13b\n"129129 ".previous\n");130130EXPORT_SYMBOL(raw_copy_to_user);131131-132132-long strncpy_from_user(char *__to, const char __user *__from, long __len)133133-{134134- int l = strnlen_user(__from, __len);135135- int is_zt = 1;136136-137137- if (l > __len) {138138- is_zt = 0;139139- l = __len;140140- }141141-142142- if (l == 0 || copy_from_user(__to, __from, l))143143- return -EFAULT;144144-145145- if (is_zt)146146- l--;147147- return l;148148-}149149-150150-long strnlen_user(const char __user *s, long n)151151-{152152- long i;153153-154154- for (i = 0; i < n; i++) {155155- char c;156156-157157- if (get_user(c, s + i) == -EFAULT)158158- return 0;159159- if (c == 0)160160- return i + 1;161161- }162162- return n + 1;163163-}