diff options
Diffstat (limited to 'lib/strncpy_from_user.c')
| -rw-r--r-- | lib/strncpy_from_user.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c index b53e1b5d80f4..58eacd41526c 100644 --- a/lib/strncpy_from_user.c +++ b/lib/strncpy_from_user.c @@ -114,10 +114,11 @@ long strncpy_from_user(char *dst, const char __user *src, long count)  		kasan_check_write(dst, count);  		check_object_size(dst, count, false); -		user_access_begin(); -		retval = do_strncpy_from_user(dst, src, count, max); -		user_access_end(); -		return retval; +		if (user_access_begin(src, max)) { +			retval = do_strncpy_from_user(dst, src, count, max); +			user_access_end(); +			return retval; +		}  	}  	return -EFAULT;  }  | 
