lkml.org 
[lkml]   [2021]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 30/63] fortify: Prepare to improve strnlen() and strlen() warnings
    Date
    In order to have strlen() use fortified strnlen() internally, swap their
    positions in the source. Doing this as part of later changes makes
    review difficult, so reoroder it here; no code changes.

    Cc: Francis Laniel <laniel_francis@privacyrequired.com>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    ---
    include/linux/fortify-string.h | 22 +++++++++++-----------
    1 file changed, 11 insertions(+), 11 deletions(-)

    diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h
    index 68bc5978d916..a3cb1d9aacce 100644
    --- a/include/linux/fortify-string.h
    +++ b/include/linux/fortify-string.h
    @@ -56,6 +56,17 @@ __FORTIFY_INLINE char *strcat(char *p, const char *q)
    return p;
    }

    +extern __kernel_size_t __real_strnlen(const char *, __kernel_size_t) __RENAME(strnlen);
    +__FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)
    +{
    + size_t p_size = __builtin_object_size(p, 1);
    + __kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
    +
    + if (p_size <= ret && maxlen != ret)
    + fortify_panic(__func__);
    + return ret;
    +}
    +
    __FORTIFY_INLINE __kernel_size_t strlen(const char *p)
    {
    __kernel_size_t ret;
    @@ -71,17 +82,6 @@ __FORTIFY_INLINE __kernel_size_t strlen(const char *p)
    return ret;
    }

    -extern __kernel_size_t __real_strnlen(const char *, __kernel_size_t) __RENAME(strnlen);
    -__FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)
    -{
    - size_t p_size = __builtin_object_size(p, 1);
    - __kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
    -
    - if (p_size <= ret && maxlen != ret)
    - fortify_panic(__func__);
    - return ret;
    -}
    -
    /* defined after fortified strlen to reuse it */
    extern size_t __real_strlcpy(char *, const char *, size_t) __RENAME(strlcpy);
    __FORTIFY_INLINE size_t strlcpy(char *p, const char *q, size_t size)
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-08-18 08:10    [W:4.821 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site