• Kees Cook's avatar
    slab: Remove __malloc attribute from realloc functions · 9ed9cac1
    Kees Cook authored
    The __malloc attribute should not be applied to "realloc" functions, as
    the returned pointer may alias the storage of the prior pointer. Instead
    of splitting __malloc from __alloc_size, which would be a huge amount of
    churn, just create __realloc_size for the few cases where it is needed.
    
    Thanks to Geert Uytterhoeven <geert@linux-m68k.org> for reporting build
    failures with gcc-8 in earlier version which tried to remove the #ifdef.
    While the "alloc_size" attribute is available on all GCC versions, I
    forgot that it gets disabled explicitly by the kernel in GCC < 9.1 due
    to misbehaviors. Add a note to the compiler_attributes.h entry for it.
    
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
    Cc: Marco Elver <elver@google.com>
    Cc: linux-mm@kvack.org
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
    9ed9cac1
slab_common.c 33.2 KB