Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3505350imu; Mon, 7 Jan 2019 04:44:37 -0800 (PST) X-Google-Smtp-Source: AFSGD/VJR5/vPwINwtq3m1NYyNwcXAHVGgcJwBuvfaFsBBC6QcOYqgeyFqXtN7lYsttlIk1lfk3x X-Received: by 2002:a62:1289:: with SMTP id 9mr63588535pfs.102.1546865077720; Mon, 07 Jan 2019 04:44:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546865077; cv=none; d=google.com; s=arc-20160816; b=u6G4QeRcgFqWkNO488vxCn/MhcF6mgtp4lXvTVwTIAqSzgm/2GifwuH0heN1xMBxFU yhFsTnRdlxTAiqz9u/MpdZUTUUP6mNwE5Jv7P4TfPYi5K0YGZYHCW2JYSM5CPYvyNRuU BR/FazF7RXGzIZwV96sNq/Auq1+2TSVSUg8+vpRovCbPP2kFEoXo5wqLaXWrzeBlAEx0 GiKaKpXFij3pe6jgjAJLzQVkBfRPlWBBkP5DBRJt+wC+aRKxCMx53tSHIvP2c6pHC0LR XYBZExQK8xLo+1jmaEPU+29mO34E3zscSKd/UJ5MP95FHC9wKLV3AlMh5rSWztJYkGBX vLVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=h2fFicVScF9YCRpu7TOZyqxebRzK0RMynijD1nm3vLg=; b=UcaT0Ech6EXLET/7iGYtFSK5Tzx2Vw885tiIezo4W1cqwUNCdKJY92Onm52IuTrHB5 6c9v6gXQUSgYj9nfwyUcNXZA/pF0z37mDs4Tj3wcPix1Km+kO3dAflnxAuajW4S+8VFY gNQ4vdC4/1EaAkpRPUsCj3Ed8r6PpQ/oFD4poGudxAEaFDb40+fwUav4VvomlXd5GsGt RC1zSCxvmoRTLeIbNEhBFwoJvV5ToSDZADPx4oNwNZbcT47Yh7A0YAlmHji7KxMXgR8j oIx7qeY2HPV5D0b/fXBOng7v4jznrKVeVKr8x0Nglwt7ymVjR/PG3bn+cuciFVMdgYMQ TNNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=tPnoldy8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ce19si7085056plb.13.2019.01.07.04.44.22; Mon, 07 Jan 2019 04:44:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=tPnoldy8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728299AbfAGMmk (ORCPT + 99 others); Mon, 7 Jan 2019 07:42:40 -0500 Received: from mail.kernel.org ([198.145.29.99]:58300 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727767AbfAGMme (ORCPT ); Mon, 7 Jan 2019 07:42:34 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9899A20449; Mon, 7 Jan 2019 12:42:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546864954; bh=7DPFpsJ4dLmi+ANTA59keEKGdwbYGNgBLfj2o/AJmec=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tPnoldy8b/hDlQi/PoVbaFAxzfchHnazmoC7ESNTMrxNqvchdAGDvqw8PXaaJUnc5 Zw5B5yS6MpjoSRdwFgVUYxYblEKGP/LW4DwurMt8UPrvfv/pdk6fvtbCILXB270gQf 8HytCx4YX0BX24qP4oGQAQkHEHmXs8mBNlKb2Ft4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Martin Blumenstingl , Chao Yu , Jaegeuk Kim Subject: [PATCH 4.20 107/145] f2fs: fix validation of the block count in sanity_check_raw_super Date: Mon, 7 Jan 2019 13:32:24 +0100 Message-Id: <20190107104451.226625957@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190107104437.308206189@linuxfoundation.org> References: <20190107104437.308206189@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ From: Martin Blumenstingl commit 88960068f25fcc3759455d85460234dcc9d43fef upstream. Treat "block_count" from struct f2fs_super_block as 64-bit little endian value in sanity_check_raw_super() because struct f2fs_super_block declares "block_count" as "__le64". This fixes a bug where the superblock validation fails on big endian devices with the following error: F2FS-fs (sda1): Wrong segment_count / block_count (61439 > 0) F2FS-fs (sda1): Can't find valid F2FS filesystem in 1th superblock F2FS-fs (sda1): Wrong segment_count / block_count (61439 > 0) F2FS-fs (sda1): Can't find valid F2FS filesystem in 2th superblock As result of this the partition cannot be mounted. With this patch applied the superblock validation works fine and the partition can be mounted again: F2FS-fs (sda1): Mounted with checkpoint version = 7c84 My little endian x86-64 hardware was able to mount the partition without this fix. To confirm that mounting f2fs filesystems works on big endian machines again I tested this on a 32-bit MIPS big endian (lantiq) device. Fixes: 0cfe75c5b01199 ("f2fs: enhance sanity_check_raw_super() to avoid potential overflows") Cc: stable@vger.kernel.org Signed-off-by: Martin Blumenstingl Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Greg Kroah-Hartman --- fs/f2fs/super.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -2493,10 +2493,10 @@ static int sanity_check_raw_super(struct return 1; } - if (segment_count > (le32_to_cpu(raw_super->block_count) >> 9)) { + if (segment_count > (le64_to_cpu(raw_super->block_count) >> 9)) { f2fs_msg(sb, KERN_INFO, - "Wrong segment_count / block_count (%u > %u)", - segment_count, le32_to_cpu(raw_super->block_count)); + "Wrong segment_count / block_count (%u > %llu)", + segment_count, le64_to_cpu(raw_super->block_count)); return 1; }