From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A06B2C433EF for ; Fri, 10 Sep 2021 01:00:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 858E16113E for ; Fri, 10 Sep 2021 01:00:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235548AbhIJBBO (ORCPT ); Thu, 9 Sep 2021 21:01:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:49028 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234539AbhIJAXi (ORCPT ); Thu, 9 Sep 2021 20:23:38 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 80DFB611C1; Fri, 10 Sep 2021 00:22:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631233347; bh=JShD2tYDeqNpZ8yXpCTPjENrn0zCC0zhO8g5tKr3BsA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JAfplXCsy/RLJOHvO3x/lqT1JNbsxf2ZlXclTt7AKfgEzxCzfWogWmqWmZ1IltHTx MFjOev+wnG3rsxbbbk2YAreQjhG+ZevO1vx/BYezI8N9eGiGFQI9+5VyXB6ixC5m5a pFd4NeUfCZq1D7do3H4LKUjKW35pk1Dym1QHUpCjlG9/fmELANVkRCAa7OKv/gsfVQ pNpW8kO+KaCDlL3XGfVIUVlB1qOuz4ovacs8WSy9WSNRcjhAaF0DvZ8QBl2Lck01Sr rJ1/mst00haXeAfqB/FKbZ3ZG0kxNO2HDWaVMME0/l1ujKFE1aHI3vgSo0fphujUu7 XYFU2QLWpn/VQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jan Kara , Theodore Ts'o , Sasha Levin , linux-ext4@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 33/37] ext4: Make sure quota files are not grabbed accidentally Date: Thu, 9 Sep 2021 20:21:38 -0400 Message-Id: <20210910002143.175731-33-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210910002143.175731-1-sashal@kernel.org> References: <20210910002143.175731-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jan Kara [ Upstream commit bd2c38cf1726ea913024393a0d11f2e2a3f4c180 ] If ext4 filesystem is corrupted so that quota files are linked from directory hirerarchy, bad things can happen. E.g. quota files can get corrupted or deleted. Make sure we are not grabbing quota file inodes when we expect normal inodes. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o Link: https://lore.kernel.org/r/20210812133122.26360-1-jack@suse.cz Signed-off-by: Sasha Levin --- fs/ext4/inode.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 1429d01d836b..746ec988e016 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4846,6 +4846,7 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino, struct ext4_iloc iloc; struct ext4_inode *raw_inode; struct ext4_inode_info *ei; + struct ext4_super_block *es = EXT4_SB(sb)->s_es; struct inode *inode; journal_t *journal = EXT4_SB(sb)->s_journal; long ret; @@ -4856,9 +4857,12 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino, projid_t i_projid; if ((!(flags & EXT4_IGET_SPECIAL) && - (ino < EXT4_FIRST_INO(sb) && ino != EXT4_ROOT_INO)) || + ((ino < EXT4_FIRST_INO(sb) && ino != EXT4_ROOT_INO) || + ino == le32_to_cpu(es->s_usr_quota_inum) || + ino == le32_to_cpu(es->s_grp_quota_inum) || + ino == le32_to_cpu(es->s_prj_quota_inum))) || (ino < EXT4_ROOT_INO) || - (ino > le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count))) { + (ino > le32_to_cpu(es->s_inodes_count))) { if (flags & EXT4_IGET_HANDLE) return ERR_PTR(-ESTALE); __ext4_error(sb, function, line, -- 2.30.2