瀏覽代碼

quota: Improve checking of quota file header

When we are asked for vfsv0 quota format and the file is in vfsv1
format (or vice versa), refuse to use the quota file. Also return
with error when we don't like the header of quota file.

Signed-off-by: Jan Kara <jack@suse.cz>
Jan Kara 15 年之前
父節點
當前提交
869835dfad
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      fs/quota/quota_v2.c

+ 4 - 1
fs/quota/quota_v2.c

@@ -97,8 +97,11 @@ static int v2_read_file_info(struct super_block *sb, int type)
 	unsigned int version;
 	unsigned int version;
 
 
 	if (!v2_read_header(sb, type, &dqhead))
 	if (!v2_read_header(sb, type, &dqhead))
-		return 0;
+		return -1;
 	version = le32_to_cpu(dqhead.dqh_version);
 	version = le32_to_cpu(dqhead.dqh_version);
+	if ((info->dqi_fmt_id == QFMT_VFS_V0 && version != 0) ||
+	    (info->dqi_fmt_id == QFMT_VFS_V1 && version != 1))
+		return -1;
 
 
 	size = sb->s_op->quota_read(sb, type, (char *)&dinfo,
 	size = sb->s_op->quota_read(sb, type, (char *)&dinfo,
 	       sizeof(struct v2_disk_dqinfo), V2_DQINFOOFF);
 	       sizeof(struct v2_disk_dqinfo), V2_DQINFOOFF);