On Thu, Oct 13, 2022 at 10:00:57PM +0800, Andrey Konovalov wrote: > On Tue, Sep 27, 2022 at 4:42 AM Feng Tang <feng.tang@xxxxxxxxx> wrote: > > > > > > @@ -746,7 +747,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, > > > > for (i = 0; i < size; i++) { > > > > p[i] = kasan_slab_alloc(s, p[i], flags, init); > > > > if (p[i] && init && !kasan_has_integrated_init()) > > > > - memset(p[i], 0, s->object_size); > > > > + memset(p[i], 0, orig_size); > > > > > > Note that when KASAN is enabled and has integrated init, it will > > > initialize the whole object, which leads to an inconsistency with this > > > change. > > > > Do you mean for kzalloc() only? or there is some kasan check newly added? > > Hi Feng, > > I mean that when init is true and kasan_has_integrated_init() is true > (with HW_TAGS mode), kasan_slab_alloc() initializes the whole object. > Which is inconsistent with the memset() of only orig_size when > !kasan_has_integrated_init(). But I think this is fine assuming SLAB > poisoning happens later. But please add a comment. I see now. Will add some comment. thanks! - Feng > Thanks!