| 335 | } |
| 336 | |
| 337 | size_t |
| 338 | kcsan_strlen(const char *str) |
| 339 | { |
| 340 | const char *s; |
| 341 | |
| 342 | s = str; |
| 343 | while (1) { |
| 344 | kcsan_access((uintptr_t)s, 1, false, false, __RET_ADDR); |
| 345 | if (*s == '\0') |
| 346 | break; |
| 347 | s++; |
| 348 | } |
| 349 | |
| 350 | return (s - str); |
| 351 | } |
| 352 | |
| 353 | #undef copyin |
| 354 | #undef copyin_nofault |
nothing calls this directly
no test coverage detected