devres: Use kmalloc_size_roundup() to match ksize() usage
authorKees Cook <keescook@chromium.org>
Tue, 18 Oct 2022 09:04:10 +0000 (02:04 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Nov 2022 14:11:46 +0000 (15:11 +0100)
Round up allocations with kmalloc_size_roundup() so that devres's use
of ksize() is always accurate and no special handling of the memory is
needed by KASAN, UBSAN_BOUNDS, nor FORTIFY_SOURCE.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20221018090406.never.856-kees@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/devres.c

index 4ab2b50..c0e1000 100644 (file)
@@ -101,6 +101,9 @@ static bool check_dr_size(size_t size, size_t *tot_size)
                                        size, tot_size)))
                return false;
 
+       /* Actually allocate the full kmalloc bucket size. */
+       *tot_size = kmalloc_size_roundup(*tot_size);
+
        return true;
 }