string.h: add array-wrappers for (v)memdup_user()
authorPhilipp Stanner <pstanner@redhat.com>
Wed, 20 Sep 2023 12:36:09 +0000 (14:36 +0200)
committerDave Airlie <airlied@redhat.com>
Mon, 9 Oct 2023 06:59:42 +0000 (16:59 +1000)
commit313ebe47d75558511aa1237b6e35c663b5c0ec6f
treeb2f095fd848595b1e749160167a04cf9debbd9b0
parent94f6f0550c625fab1f373bb86a6669b45e9748b3
string.h: add array-wrappers for (v)memdup_user()

Currently, user array duplications are sometimes done without an
overflow check. Sometimes the checks are done manually; sometimes the
array size is calculated with array_size() and sometimes by calculating
n * size directly in code.

Introduce wrappers for arrays for memdup_user() and vmemdup_user() to
provide a standardized and safe way for duplicating user arrays.

This is both for new code as well as replacing usage of (v)memdup_user()
in existing code that uses, e.g., n * size to calculate array sizes.

Suggested-by: David Airlie <airlied@redhat.com>
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Zack Rusin <zackr@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230920123612.16914-3-pstanner@redhat.com
include/linux/string.h