From patchwork Wed Dec 7 00:22:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Groessler X-Patchwork-Id: 86934 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp67411qgi; Tue, 6 Dec 2016 16:29:30 -0800 (PST) X-Received: by 10.99.234.21 with SMTP id c21mr118380802pgi.166.1481070570097; Tue, 06 Dec 2016 16:29:30 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k79si21503882pfj.2.2016.12.06.16.29.29; Tue, 06 Dec 2016 16:29:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751817AbcLGA32 (ORCPT + 3 others); Tue, 6 Dec 2016 19:29:28 -0500 Received: from vigilia.groessler.org ([79.143.177.135]:5050 "EHLO vigilia.groessler.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751677AbcLGA31 (ORCPT ); Tue, 6 Dec 2016 19:29:27 -0500 X-Greylist: delayed 420 seconds by postgrey-1.27 at vger.kernel.org; Tue, 06 Dec 2016 19:29:27 EST Received: from blasi.groessler.org (gaga.groessler.org [212.168.189.235]) by vigilia.groessler.org (8.14.7/8.14.6) with ESMTP id uB70MJuQ019873 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=OK) for ; Wed, 7 Dec 2016 01:22:19 +0100 (CET) To: stable@vger.kernel.org From: Christian Groessler Subject: fix kernel crash on stable/linux-3.4.y Message-ID: Date: Wed, 7 Dec 2016 01:22:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Hi, the attached patch prevents a crash when trying to mount a corrupted ext4 file system. regards, chris >From 86344aebe7e3905b2293a7891a68def8cb38a571 Mon Sep 17 00:00:00 2001 From: Christian Groessler Date: Wed, 7 Dec 2016 00:54:03 +0100 Subject: [PATCH] Fix kernel crash when trying to mount corrupted ext4 partition. ext4_calculate_overhead(), if successful, sets the 'ret' vatiable to 0. Subsequent failures will bail out, with the function returning the 'ret' variable as status. Since 'ret' is 0 (indicating no error) the kernel will happily continue and eventually crash. This change preserves the value of 'ret' across the call to ext4_calculate_overhead() in case this function doesn't return an error. Signed-off-by: Christian Groessler --- fs/ext4/super.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 5862518..0f63644 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3692,9 +3692,12 @@ no_journal: if (es->s_overhead_clusters) sbi->s_overhead = le32_to_cpu(es->s_overhead_clusters); else { + int oret = ret; ret = ext4_calculate_overhead(sb); if (ret) goto failed_mount_wq; + else + ret = oret; } /* -- 2.7.4