On Mon 20-04-15 17:25:51, Andreas Dilger wrote: > On Apr 19, 2015, at 7:39 PM, Li Xi <pkuelelixi@xxxxxxxxx> wrote: > > > > This patch adds a new internal field of ext4 inode to save project > > identifier. Also a new flag EXT4_INODE_PROJINHERIT is added for > > inheriting project ID from parent directory. > > > > > @@ -3930,12 +3939,18 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino) > > inode->i_mode = le16_to_cpu(raw_inode->i_mode); > > i_uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low); > > i_gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low); > > + if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_PROJECT)) > > + i_projid = (projid_t)le32_to_cpu(raw_inode->i_projid); > > This needs to check if EXT4_PROJID_INHERIT_FL is set, and if i_projid > fits in i_extra_isize, otherwise it could be accessing a garbage value > beyond i_extra_isize. We don't need to check EXT4_PROJID_INHERIT_FL. That is completely independent of whether project ID is stored or not. We should check whether project ID fits into the inode in this place, that is correct. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html