• Kees Cook's avatar
    mm: Make ksize() a reporting-only function · 38931d89
    Kees Cook authored
    With all "silently resizing" callers of ksize() refactored, remove the
    logic in ksize() that would allow it to be used to effectively change
    the size of an allocation (bypassing __alloc_size hints, etc). Users
    wanting this feature need to either use kmalloc_size_roundup() before an
    allocation, or use krealloc() directly.
    
    For kfree_sensitive(), move the unpoisoning logic inline. Replace the
    some of the partially open-coded ksize() in __do_krealloc with ksize()
    now that it doesn't perform unpoisoning.
    
    Adjust the KUnit tests to match the new ksize() behavior. Execution
    tested with:
    
    $ ./tools/testing/kunit/kunit.py run \
    	--kconfig_add CONFIG_KASAN=y \
    	--kconfig_add CONFIG_KASAN_GENERIC=y \
    	--arch x86_64 kasan
    
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Cc: linux-mm@kvack.org
    Cc: kasan-dev@googlegroups.com
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Enhanced-by: default avatarAndrey Konovalov <andreyknvl@gmail.com>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    38931d89
slab_common.c 37.4 KB