Source
107
107
108
108
if (unlikely(count <= 0))
109
109
return 0;
110
110
111
111
max_addr = user_addr_max();
112
112
src_addr = (unsigned long)str;
113
113
if (likely(src_addr < max_addr)) {
114
114
unsigned long max = max_addr - src_addr;
115
115
long retval;
116
116
117
-
user_access_begin();
118
-
retval = do_strnlen_user(str, count, max);
119
-
user_access_end();
120
-
return retval;
117
+
if (user_access_begin(str, max)) {
118
+
retval = do_strnlen_user(str, count, max);
119
+
user_access_end();
120
+
return retval;
121
+
}
121
122
}
122
123
return 0;
123
124
}
124
125
EXPORT_SYMBOL(strnlen_user);