On Wed, Jul 09, 2014 at 03:30:14PM +0400, Andrey Ryabinin wrote: > We need to manually unpoison rounded up allocation size for dname > to avoid kasan's reports in __d_lookup_rcu. > __d_lookup_rcu may validly read a little beyound allocated size. If it read a little beyond allocated size, IMHO, it is better to allocate correct size. kmalloc(name->len + 1, GFP_KERNEL); --> kmalloc(roundup(name->len + 1, sizeof(unsigned long ), GFP_KERNEL); Isn't it? Thanks. > > Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> > Signed-off-by: Andrey Ryabinin <a.ryabinin@xxxxxxxxxxx> > --- > fs/dcache.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/dcache.c b/fs/dcache.c > index b7e8b20..dff64f2 100644 > --- a/fs/dcache.c > +++ b/fs/dcache.c > @@ -38,6 +38,7 @@ > #include <linux/prefetch.h> > #include <linux/ratelimit.h> > #include <linux/list_lru.h> > +#include <linux/kasan.h> > #include "internal.h" > #include "mount.h" > > @@ -1412,6 +1413,8 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name) > kmem_cache_free(dentry_cache, dentry); > return NULL; > } > + unpoison_shadow(dname, > + roundup(name->len + 1, sizeof(unsigned long))); > } else { > dname = dentry->d_iname; > } > -- > 1.8.5.5 > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>