Skip to content
  • Waiman Long's avatar
    mm/slab: use memzero_explicit() in kzfree() · 8982ae52
    Waiman Long authored
    The kzfree() function is normally used to clear some sensitive
    information, like encryption keys, in the buffer before freeing it back to
    the pool.  Memset() is currently used for buffer clearing.  However
    unlikely, there is still a non-zero probability that the compiler may
    choose to optimize away the memory clearing especially if LTO is being
    used in the future.
    
    To make sure that this optimization will never happen,
    memzero_explicit(), which is introduced in v3.18, is now used in
    kzfree() to future-proof it.
    
    Link: http://lkml.kernel.org/r/20200616154311.12314-2-longman@redhat.com
    Fixes: 3ef0e5ba
    
     ("slab: introduce kzfree()")
    Signed-off-by: default avatarWaiman Long <longman@redhat.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: "Serge E. Hallyn" <serge@hallyn.com>
    Cc: Joe Perches <joe@perches.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: "Jason A . Donenfeld" <Jason@zx2c4.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8982ae52