On Tue, Jul 11, 2023 at 03:46:24PM +0200, Vlastimil Babka wrote: > Commit d36a63a943e3 ("kasan, slub: fix more conflicts with > CONFIG_SLAB_FREELIST_HARDENED") has introduced kasan_reset_tags() to > freelist_ptr() encoding/decoding when CONFIG_SLAB_FREELIST_HARDENED is > enabled to resolve issues when passing tagged or untagged pointers > inconsistently would lead to incorrect calculations. > > Later, commit aa1ef4d7b3f6 ("kasan, mm: reset tags when accessing > metadata") made sure all pointers have tags reset regardless of > CONFIG_SLAB_FREELIST_HARDENED, because there was no other way to access > the freepointer metadata safely with hw tag-based KASAN. > > Therefore the kasan_reset_tag() usage in freelist_ptr_encode()/decode() > is now redundant, as all callers use kasan_reset_tag() unconditionally > when constructing ptr_addr. Remove the redundant calls and simplify the > code and remove obsolete comments. > > Also in freelist_ptr_encode() introduce an 'encoded' variable to make > the lines shorter and make it similar to the _decode() one. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> Thanks, this is much more readable! Acked-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook