2 * Copyright (C) 2006 Atmark Techno, Inc.
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
9 #include <linux/string.h>
10 #include <asm/uaccess.h>
14 long strnlen_user(const char __user
*src
, long count
)
16 return strlen(src
) + 1;
19 #define __do_strncpy_from_user(dst, src, count, res) \
22 strncpy(dst, src, count); \
23 for (tmp = dst; *tmp && count > 0; tmp++, count--) \
28 long __strncpy_from_user(char *dst
, const char __user
*src
, long count
)
31 __do_strncpy_from_user(dst
, src
, count
, res
);
35 long strncpy_from_user(char *dst
, const char __user
*src
, long count
)
38 if (access_ok(VERIFY_READ
, src
, 1))
39 __do_strncpy_from_user(dst
, src
, count
, res
);