static long _stp_strncpy_from_user(char *dst, const char __user *src, long count) { long res = -EFAULT; if (access_ok(VERIFY_READ, src, count)) __stp_strncpy_from_user(dst, src, count, res); return res; }
/* XXX: see also kread/uread in loc2c-runtime.h */ static long _stp_strncpy_from_user(char *dst, const char __user *src, long count) { long res = -EFAULT; mm_segment_t _oldfs = get_fs(); set_fs(USER_DS); pagefault_disable(); if (access_ok(VERIFY_READ, src, count)) /* XXX: bad_addr? */ __stp_strncpy_from_user(dst, src, count, res); pagefault_enable(); set_fs(_oldfs); return res; }