diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 790db7eac6c2..cf11dcffe4bf 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -2105,8 +2105,9 @@ void ext4_insert_dentry(struct inode *dir, de->file_type = EXT4_FT_UNKNOWN; de->inode = cpu_to_le32(inode->i_ino); ext4_set_de_type(inode->i_sb, de, inode->i_mode); - de->name_len = fname_len(fname); - memcpy(de->name, fname_name(fname), fname_len(fname)); + de->name_len = min_t(int, fname_len(fname), rlen - 8); + printk("rec length: %d, buf_size: %d, name length:%d, %s\n", rlen, buf_size, fname_len(fname), __func__); + memcpy(de->name, fname_name(fname), de->name_len); if (ext4_hash_in_dirent(dir)) { struct dx_hash_info *hinfo = &fname->hinfo;