Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3121041pxk; Mon, 21 Sep 2020 05:55:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJynVBLBzoFkDH1sf2uerLY78FUu50YAmFTXhVEFvDeaSTv0gcYdnRJ/rXZB/ZvZCDiyI0Go X-Received: by 2002:a17:906:3a0e:: with SMTP id z14mr48579416eje.192.1600692940745; Mon, 21 Sep 2020 05:55:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600692940; cv=none; d=google.com; s=arc-20160816; b=CFUBV5RIj9Bv9BaKL4yDb5euVCv/cazSdAU1wmuuVCsjlhex6EPqCCWL8znDZLQUm2 GhW8a7al1JWdTa+lESoaITcaCjKeS1zkgWFxRRjBV8Z3rkSqluHeE0RgJTHhVsvDoWNQ 2KKbn/fdny4jRf6GTjSvsQXrdhr8/8DwUvZyXoxE52Au2wFUR/p9bsA9zklbMLypglxL pMiwbOX+aN76c16arbwDT5k9FJtPHySdZvNSzf1IirDC8u1LqYlVMVZcc7qfe4dzo7b9 7pXIXq1+RW5l4GSTKb8bqf6vSarOTpBHWc5IVTIexywrhSNRqrc7QL5g1lqB7p2knrPH nY4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=nF8zzmE04hhsrONVMSeSeEzHm6/Vt1+GenrTLoVP0c8=; b=T4A7r/WhF7iMiahjPNDiFUrhFJdwJ+alLxT89+2LK8QtyS4nL30g3iABTzQNt9U+sX Y9Qe42gcuJ87oKeHvmvKJqe1yHo0F37lfCVKm/83yayUoaahgg6FdZrtYcfN6I98xIYX szVsPh09OA0ktf+YCsZg8d+osuWIjtGsgs6rpoDpcqd6sk4YkzkjnqfbIGZVBwP/+m/O DeARVm7tv86WstzJzoYM+Gz3yRjlSk8WvNtgB95515bHkh+hQ0zDXxFZrj9fL01ZqDn2 rKjLNRFCBUWCT6F8O6HwR5/CL53318b8vVr4QQon21XLyzG0mYsTOrS1Emhi91mAPI23 tRkw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bm16si8076359edb.114.2020.09.21.05.55.17; Mon, 21 Sep 2020 05:55:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726853AbgIUMxj (ORCPT + 99 others); Mon, 21 Sep 2020 08:53:39 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:13797 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726395AbgIUMxi (ORCPT ); Mon, 21 Sep 2020 08:53:38 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 6BEEB16731AB41C1103F; Mon, 21 Sep 2020 20:53:29 +0800 (CST) Received: from szvp000203569.huawei.com (10.120.216.130) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Mon, 21 Sep 2020 20:53:20 +0800 From: Chao Yu To: CC: , , , Chao Yu Subject: [PATCH 1/2] f2fs: do sanity check on zoned block device path Date: Mon, 21 Sep 2020 20:53:13 +0800 Message-ID: <20200921125314.99297-1-yuchao0@huawei.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.120.216.130] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org sbi->devs would be initialized only if image enables multiple device feature or blkzoned feature, if blkzoned feature flag was set by fuzz in non-blkzoned device, we will suffer below panic: get_zone_idx fs/f2fs/segment.c:4892 [inline] f2fs_usable_zone_blks_in_seg fs/f2fs/segment.c:4943 [inline] f2fs_usable_blks_in_seg+0x39b/0xa00 fs/f2fs/segment.c:4999 Call Trace: check_block_count+0x69/0x4e0 fs/f2fs/segment.h:704 build_sit_entries fs/f2fs/segment.c:4403 [inline] f2fs_build_segment_manager+0x51da/0xa370 fs/f2fs/segment.c:5100 f2fs_fill_super+0x3880/0x6ff0 fs/f2fs/super.c:3684 mount_bdev+0x32e/0x3f0 fs/super.c:1417 legacy_get_tree+0x105/0x220 fs/fs_context.c:592 vfs_get_tree+0x89/0x2f0 fs/super.c:1547 do_new_mount fs/namespace.c:2896 [inline] path_mount+0x12ae/0x1e70 fs/namespace.c:3216 do_mount fs/namespace.c:3229 [inline] __do_sys_mount fs/namespace.c:3437 [inline] __se_sys_mount fs/namespace.c:3414 [inline] __x64_sys_mount+0x27f/0x300 fs/namespace.c:3414 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 Add sanity check to inconsistency on factors: blkzoned flag, device path and device character to avoid above panic. Signed-off-by: Chao Yu --- fs/f2fs/super.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 427ce4cbd124..e0423b091b30 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -2852,6 +2852,12 @@ static int sanity_check_raw_super(struct f2fs_sb_info *sbi, segment_count, dev_seg_count); return -EFSCORRUPTED; } + } else { + if (__F2FS_HAS_FEATURE(raw_super, F2FS_FEATURE_BLKZONED) && + !bdev_is_zoned(sbi->sb->s_bdev)) { + f2fs_info(sbi, "Zoned block device path is missing"); + return -EFSCORRUPTED; + } } if (secs_per_zone > total_sections || !secs_per_zone) { -- 2.26.2