]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Make sure aligned_alloc size is a multiply of alignment
authorYuxuan Shui <yshuiv7@gmail.com>
Thu, 21 May 2020 13:36:00 +0000 (14:36 +0100)
committerYuxuan Shui <yshuiv7@gmail.com>
Thu, 21 May 2020 13:36:00 +0000 (14:36 +0100)
Fix a ASan complaint.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
include/linux/slab.h

index d77b7683fb543e5502b189164f0607b5b80ba24a..67d52c9eebcfed58bec825a66462732326e4e514 100644 (file)
@@ -20,9 +20,11 @@ static inline void *kmalloc(size_t size, gfp_t flags)
 
        run_shrinkers();
 
+       size_t alignment = min(rounddown_pow_of_two(size),
+                               (size_t)PAGE_SIZE);
+       size = roundup(size, alignment);
        p = size
-           ? aligned_alloc(min(rounddown_pow_of_two(size),
-                               (size_t)PAGE_SIZE), size)
+           ? aligned_alloc(alignment, size)
            : malloc(0);
        if (p && (flags & __GFP_ZERO))
                memset(p, 0, size);