• Kees Cook's avatar
    string: Allow 2-argument strscpy() · e6584c39
    Kees Cook authored
    Using sizeof(dst) for the "size" argument in strscpy() is the
    overwhelmingly common case. Instead of requiring this everywhere, allow a
    2-argument version to be used that will use the sizeof() internally. There
    are other functions in the kernel with optional arguments[1], so this
    isn't unprecedented, and improves readability. Update and relocate the
    kern-doc for strscpy() too, and drop __HAVE_ARCH_STRSCPY as it is unused.
    
    Adjust ARCH=um build to notice the changed export name, as it doesn't
    do full header includes for the string helpers.
    
    This could additionally let us save a few hundred lines of code:
     1177 files changed, 2455 insertions(+), 3026 deletions(-)
    with a treewide cleanup using Coccinelle:
    
    @needless_arg@
    expression DST, SRC;
    @@
    
            strscpy(DST, SRC
    -, sizeof(DST)
            )
    
    Link: https://elixir.bootlin.com/linux/v6.7/source/include/linux/pci.h#L1517 [1]
    Reviewed-by: default avatarJustin Stitt <justinstitt@google.com>
    Cc: Andy Shevchenko <andy@kernel.org>
    Cc: linux-hardening@vger.kernel.org
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    e6584c39
string.c 18 KB