diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h index da51a83b2829..cde637f735fe 100644 --- a/include/linux/fortify-string.h +++ b/include/linux/fortify-string.h @@ -176,8 +176,9 @@ __FORTIFY_INLINE __kernel_size_t strnlen(const char * const POS p, __kernel_size } /* Do not check characters beyond the end of p. */ - ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size); - if (p_size <= ret && maxlen != ret) + maxlen = (maxlen < p_size) ? maxlen : p_size; + ret = __real_strnlen(p, maxlen); + if (maxlen < ret) fortify_panic(__func__); return ret; }